Object Gateway 가이드
Ceph Object Gateway 배포, 구성 및 관리
초록
1장. Ceph Object Gateway 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway(RGW)는 Ceph 스토리지 클러스터에 대한 RESTful 게이트웨이를 애플리케이션에 제공하기 위해 librados 라이브러리에 빌드된 오브젝트 스토리지 인터페이스입니다. Ceph Object Gateway는 다음 세 가지 인터페이스를 지원합니다.
S3 호환성:
Amazon S3 RESTful API의 큰 하위 집합과 호환되는 인터페이스가 포함된 오브젝트 스토리지 기능을 제공합니다.
S3 select를 실행하여 처리량을 가속화할 수 있습니다. 사용자는 중재자 없이 S3 선택 쿼리를 직접 실행할 수 있습니다. CSV용 S3 선택 워크플로우는 두 가지로, 하나는 Apache Parquet(Parquet)용이고, 하나는 S3 select 작업에 CSV 및 Parquet 오브젝트를 제공합니다. 이러한 S3 선택 작업에 대한 자세한 내용은 Red Hat Ceph Storage 개발자 가이드의 S3 선택 작업을 참조하십시오.
Swift 호환성:
OpenStack Swift API의 대규모 하위 집합과 호환되는 인터페이스가 포함된 오브젝트 스토리지 기능을 제공합니다.
Ceph Object Gateway는 Ceph 스토리지 클러스터와 상호 작용하는 서비스입니다. 이 솔루션은 OpenStack Swift 및 Amazon S3과 호환되는 인터페이스를 제공하므로 Ceph Object Gateway에는 자체 사용자 관리 시스템이 있습니다. Ceph Object Gateway는 Ceph 블록 장치 클라이언트에서 데이터를 저장하는 데 사용되는 동일한 Ceph 스토리지 클러스터에 데이터를 저장할 수 있지만 별도의 풀이 사용되며 다른 CRUSH 계층 구조도 사용할 수 있습니다. S3 및 Swift API는 공통 네임스페이스를 공유하므로 하나의 API로 데이터를 작성하고 다른 API에서 검색할 수 있습니다.
관리 API:
Ceph Object Gateways를 관리하기 위한 관리 인터페이스를 제공합니다.
관리 API 요청은 admin 리소스 엔드포인트로 시작하는 URI에서 수행됩니다. 관리 API에 대한 권한 부여는 S3 권한 부여 메커니즘을 복제합니다. 일부 작업에는 사용자에게 특별한 관리 기능이 있어야 합니다. 응답 유형은 요청에 format 옵션을 지정하여 XML 또는 JSON일 수 있지만 기본값은 JSON 형식입니다.
WORM 소개
WORM(Write-Once-Read-Many)은 프로덕션 영역에서 오브젝트 및 버킷이 손상된 경우에도 데이터 보호 및 데이터 검색을 보장하는 데 사용되는 보안 데이터 스토리지 모델입니다.
Red Hat Ceph Storage에서는 WORM(Write-Once-Read-Many) 모델을 사용하여 오브젝트 및 버킷을 저장하는 데 사용되는 읽기 전용 기능이 있는 S3 Object Lock을 사용하여 데이터 보안을 수행하여 삭제 또는 덮어쓸 수 없습니다. Red Hat Ceph Storage 관리자도 삭제할 수 없습니다.
S3 Object Lock은 다음 두 가지 보존 모드를 제공합니다.
- 거버넌스
- 컴플라이언스
이러한 보존 모드는 오브젝트에 다양한 수준의 보호 기능을 적용합니다. Object Lock으로 보호되는 모든 오브젝트 버전에 보존 모드를 적용할 수 있습니다.
GOVERNANCE에서는 특별한 권한이 없는 경우 오브젝트 버전을 덮어쓰거나 삭제하거나 잠금 설정을 변경할 수 없습니다. GOVERNANCE 모드에서는 오브젝트를 대부분의 사용자가 삭제하지 않도록 보호할 수 있지만, 필요한 경우 일부 사용자에게 보존 설정을 변경하거나 오브젝트를 삭제할 수 있는 권한을 부여할 수 있습니다.
COMPLIANCE 모드에서는 보호된 오브젝트 버전을 사용자가 덮어쓰거나 삭제할 수 없습니다. 개체가 COMPLIANCE 모드에서 잠긴 경우 해당 보존 모드를 변경하거나 줄일 수 없습니다.
2장. 고려 사항 및 권장 사항 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway를 실행하고 다중 사이트 Ceph Object Gateway 솔루션을 구현하기 전에 고려해야 할 사항을 기본적으로 이해하는 것이 중요합니다. 하드웨어 및 네트워크 요구 사항을 알아보고 Ceph Object Gateway와 함께 작동하는 워크로드 유형과 Red Hat의 권장 사항을 파악할 수 있습니다.
사전 요구 사항
- 스토리지 솔루션을 이해, 검토, 계획합니다.
2.1. Red Hat Ceph Storage의 네트워크 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
클라우드 스토리지 솔루션의 중요한 측면은 네트워크 대기 시간 및 기타 요인으로 인해 스토리지 클러스터가 IOPS에서 실행될 수 있다는 것입니다. 또한 스토리지 클러스터에 스토리지 용량이 부족하기 전에 대역폭 제약으로 인해 처리량이 부족할 수 있습니다. 즉, 네트워크 하드웨어 구성이 가격 대비 성능 요구 사항을 충족하기 위해 선택한 워크로드를 지원해야 합니다.
스토리지 관리자는 스토리지 클러스터를 최대한 빨리 복구하는 것을 선호합니다. 저장소 클러스터 네트워크에 대한 대역폭 요구 사항을 신중하게 고려하고 네트워크 링크 초과 서브스크립션에 유의하고 클러스터 내 트래픽을 클라이언트 간 트래픽에서 분리합니다. 또한 SSD(Solid State Disk), 플래시, NVMe 및 기타 고성능 저장 장치의 사용을 고려할 때 네트워크 성능이 점점 더 중요해진다는 점을 고려하십시오.
Ceph는 공용 네트워크 및 스토리지 클러스터 네트워크를 지원합니다. 공용 네트워크는 Ceph 모니터와의 통신 및 클라이언트 트래픽을 처리합니다. 스토리지 클러스터 네트워크는 Ceph OSD 하트비트, 복제, 백필, 복구 트래픽을 처리합니다. 최소한 하나의 10GB 이더넷 링크를 스토리지 하드웨어에 사용해야 하며 연결 및 처리량을 위해 10GB 이더넷 링크를 추가할 수 있습니다.
Red Hat은 복제된 풀에서 여러 기본으로 osd_pool_default_size 를 사용하여 공용 네트워크의 배수가 되도록 대역폭을 스토리지 클러스터 네트워크에 할당할 것을 권장합니다. 또한 별도의 네트워크 카드에서 공용 및 스토리지 클러스터 네트워크를 실행하는 것이 좋습니다.
Red Hat은 프로덕션 환경에서 Red Hat Ceph Storage 배포에 10GB 이더넷을 사용할 것을 권장합니다. 1GB 이더넷 네트워크는 프로덕션 스토리지 클러스터에 적합하지 않습니다.
드라이브 오류가 발생하는 경우 1GB 이더넷 네트워크에서 1TB의 데이터를 복제하는 데 3시간이 걸리며 3TB의 데이터를 9시간이 소요됩니다. 3TB를 사용하는 것이 일반적인 드라이브 구성입니다. 반면 10GB 이더넷 네트워크를 사용하면 복제 시간은 20분과 1시간입니다. Ceph OSD가 실패하면 스토리지 클러스터는 실패한 OSD와 동일한 장애 도메인 및 장치 클래스 내의 다른 OSD에 포함된 데이터를 복제하여 복구됩니다.
랙과 같은 대규모 도메인에 장애가 발생하면 스토리지 클러스터가 훨씬 더 많은 대역폭을 사용한다는 것을 의미합니다. 대규모 스토리지 구현에 공통적인 여러 랙으로 구성된 스토리지 클러스터를 구축할 때 최적의 성능을 위해 "팻 트리" 설계의 스위치 간 네트워크 대역폭을 최대한 활용하는 것이 좋습니다. 일반적인 10GB 이더넷 스위치에는 48개의 10GB 포트와 40GB 포트 4개가 있습니다. 최대 처리량을 위해 스파인에서 40GB 포트를 사용합니다. 또는 다른 랙 및 스파인 라우터에 연결하기 위해 사용하지 않는 10GB 포트를 40GB 이상의 포트로 집계하는 것이 좋습니다. 또한 네트워크 인터페이스를 결합하는 데 LACP 모드 4를 사용하는 것이 좋습니다. 또한, 특히 백엔드 또는 클러스터 네트워크에서 최대 전송 단위(MTU)가 9000인 점보 프레임을 사용합니다.
Red Hat Ceph Storage 클러스터를 설치하고 테스트하기 전에 네트워크 처리량을 확인합니다. Ceph에서 대부분의 성능 관련 문제는 일반적으로 네트워킹 문제로 시작합니다. kinked 또는 bent cat-6 케이블과 같은 간단한 네트워크 문제로 인해 대역폭이 저하될 수 있습니다. 전면 네트워크에 최소 10GB 이더넷을 사용합니다. 대규모 클러스터의 경우 백엔드 또는 클러스터 네트워크에 40GB 이더넷을 사용하는 것이 좋습니다.
네트워크 최적화를 위해 Red Hat은 대역폭당 CPU를 개선하고 차단되지 않는 네트워크 스위치 백 플레인에 점보 프레임을 사용하는 것이 좋습니다. Red Hat Ceph Storage는 공용 네트워크와 클러스터 네트워크 모두에 대해 통신 경로의 모든 네트워킹 장치에 걸쳐 동일한 MTU 값이 필요합니다. 프로덕션에서 Red Hat Ceph Storage 클러스터를 사용하기 전에 환경의 모든 호스트 및 네트워킹 장치에서 MTU 값이 동일한지 확인합니다.
2.2. Red Hat Ceph Storage의 기본 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage를 사용하는 첫 번째 고려 사항은 데이터를 위한 스토리지 전략을 개발하는 것입니다. 스토리지 전략은 특정 사용 사례에 서비스를 제공하는 데이터를 저장하는 방법입니다. OpenStack과 같은 클라우드 플랫폼에 대한 볼륨과 이미지를 저장해야 하는 경우 저널용 SSD(Solid State Drives)로 더 빠른 SAS( Serial Attached SCSI) 드라이브에 데이터를 저장하도록 선택할 수 있습니다. 반대로 S3 또는 Swift 호환 게이트웨이에 대한 오브젝트 데이터를 저장해야 하는 경우 기존 SATA(Serial Advanced Technology Attachment) 드라이브와 같이 더 경제적인 것을 사용할 수 있습니다. Red Hat Ceph Storage는 동일한 스토리지 클러스터에 있는 두 시나리오를 모두 수용할 수 있지만, 클라우드 플랫폼에 빠른 스토리지 전략을 제공하는 수단과 개체 저장소에 더 많은 기존 스토리지를 제공하는 수단이 필요합니다.
Ceph 배포의 가장 중요한 단계 중 하나는 스토리지 클러스터의 사용 사례와 워크로드에 적합한 가격대 성능 프로필을 식별하는 것입니다. 사용 사례에 적합한 하드웨어를 선택하는 것이 중요합니다. 예를 들어, 콜드 스토리지 애플리케이션에 최적화된 IOPS 하드웨어를 선택하면 하드웨어 비용이 불필요하게 증가합니다. 반면, IOPS 집약적인 워크로드에서 용량에 최적화된 하드웨어를 선택하는 경우 성능 저하에 대해 불만을 제기하는 사용자가 불만을 줄 수 있습니다.
Red Hat Ceph Storage는 여러 스토리지 전략을 지원할 수 있습니다. 사운드 스토리지 전략을 개발하는 데 도움이 되는 사용 사례, 비용 대비 성능 장단점 및 데이터 지속성이 가장 중요한 고려 사항입니다.
사용 사례
Ceph는 대용량 스토리지 용량을 제공하며 다음과 같은 다양한 사용 사례를 지원합니다.
- Ceph 블록 장치 클라이언트는 COW(Copy-On-Write 복제)와 같은 고성능 기능을 갖춘 볼륨 및 이미지에 대한 무제한 스토리지를 제공하는 클라우드 플랫폼용 최고의 스토리지 백엔드입니다.
- Ceph Object Gateway 클라이언트는 오디오, 비트맵, 비디오 및 기타 데이터와 같은 오브젝트에 RESTful S3 호환 및 Swift 호환 오브젝트 스토리지를 제공하는 클라우드 플랫폼의 선도적인 스토리지 백엔드입니다.
- 기존 파일 스토리지를 위한 Ceph 파일 시스템입니다.
비용 vs. 성능 이점
속도, 크기, 내구성 등이 더 우수합니다. 그러나 각 최상급 품질에는 각각 비용이 들기 때문에 비용 효율적인 측면에서 그에 상응하는 비용 대 편익 절충이 있다. 성능 관점에서 다음 사용 사례를 고려하십시오. SSD는 상대적으로 적은 양의 데이터와 저널링에 매우 빠른 스토리지를 제공할 수 있습니다. 데이터베이스 또는 개체 인덱스를 저장하면 매우 빠른 SSD 풀의 이점을 얻을 수 있지만 다른 데이터에 너무 많은 비용이 듭니다. SSD 저널링을 사용하는 SAS 드라이브는 볼륨과 이미지의 경제적인 가격으로 빠른 성능을 제공합니다. SSD 저널링이 없는 SATA 드라이브는 전체 성능이 낮은 저렴한 스토리지를 제공합니다. OSD의 RHEA 계층 구조를 생성할 때는 사용 사례와 성능 장단점에 비해 사용 가능한 비용을 고려해야 합니다.
데이터 내결함성
대규모 클러스터에서는 하드웨어 장애가 예상되며 예외는 아닙니다. 그러나 데이터 손실 및 서비스 중단은 허용되지 않습니다. 이러한 이유로 데이터 지속성이 매우 중요합니다. Ceph는 여러 오브젝트 복제본 사본 또는 삭제 코딩 및 여러 코딩 청크를 사용하여 데이터 지속성을 처리합니다. 여러 복사본 또는 여러 코딩 청크를 사용하면 추가 비용과 혜택의 장단점이 있습니다. 즉, 복사본 또는 코딩 청크를 더 적게 저장하는 것이 더 저렴하지만 성능 저하된 상태로 서비스 쓰기 요청을 사용할 수 없게 될 수 있습니다. 일반적으로 두 개의 추가 사본이 있는 하나의 오브젝트 또는 두 개의 코딩 청크를 사용하면 스토리지 클러스터를 복구하는 동안 성능이 저하된 상태로 스토리지 클러스터가 기록되도록 할 수 있습니다.
복제는 하드웨어 장애 발생 시 장애 도메인에서 데이터의 중복 복사본을 하나 이상 저장합니다. 그러나 데이터의 중복 복사본은 규모에 따라 비용이 많이 들 수 있습니다. 예를 들어, 3개 복제를 사용하여 1페타바이트의 데이터를 저장하려면 최소 3페타바이트 이상의 스토리지 용량이 있는 클러스터가 필요합니다.
코딩 삭제는 데이터를 데이터 청크 및 코딩 청크로 저장합니다. 데이터 청크가 손실되는 경우 삭제 코딩은 나머지 데이터 청크 및 코딩 청크를 사용하여 손실된 데이터 청크를 복구할 수 있습니다. 삭제 코딩은 복제보다 상당히 경제적입니다. 예를 들어 데이터 청크 8개와 코딩 청크 3개가 있는 삭제 코딩을 사용하면 데이터 복사본 3개와 동일한 중복성이 제공됩니다. 그러나 이러한 인코딩 체계는 복제와 3x와 비교하여 약 1.5x의 초기 데이터를 사용합니다.
CRUSH 알고리즘은 Ceph가 스토리지 클러스터 내의 다른 위치에 추가 사본 또는 코딩 청크를 저장할 수 있도록 하여 이 프로세스를 지원합니다. 이렇게 하면 단일 스토리지 장치 또는 호스트에 장애가 발생해도 데이터 손실을 방지하는 데 필요한 모든 복사 또는 코딩 청크가 손실되지 않습니다. 비용 대비 이점의 장단점이 있는 스토리지 전략을 계획하고 데이터 지속성을 염두에 두고 Ceph 클라이언트에 스토리지 풀로 제공할 수 있습니다.
데이터 스토리지 풀만 삭제 코딩을 사용할 수 있습니다. 서비스 데이터 및 버킷 인덱스를 저장하는 풀은 복제를 사용합니다.
Ceph의 개체 복사 또는 코딩 청크를 사용하면 RAID 솔루션이 더 이상 사용되지 않습니다. Ceph는 이미 데이터 지속성을 처리하므로 RAID를 사용하지 마십시오. 성능이 저하된 RAID는 성능에 부정적인 영향을 미치며 RAID를 사용하여 데이터를 복구하는 것은 깊은 복사본 또는 코딩 청크를 사용하는 것보다 훨씬 느립니다.
2.2.1. Ceph 데몬과 이점 비교 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너화된 Ceph 데몬을 동일한 호스트에서 배치할 수 있습니다. 다음은 일부 Ceph 데몬을 배치하면 다음과 같은 이점이 있습니다.
- 소규모로 총소유비용(total cost of ownership)을 크게 개선합니다.
- 전체 성능을 향상시킬 수 있습니다.
- 최소 구성의 물리적 호스트 양을 줄입니다.
- 리소스 활용 개선.
- Red Hat Ceph Storage를 보다 쉽게 업그레이드할 수 있습니다.
컨테이너를 사용하면 다음 목록에서 하나의 데몬을 Ceph OSD 데몬(ceph-osd)과 함께 배치할 수 있습니다. 또한 Ceph Object Gateway(radosgw), Ceph 메타데이터 서버(ceph-mds) 및 Grafana의 경우 Ceph OSD 데몬과 아래 목록의 데몬과 함께 배치할 수 있습니다.
-
Ceph 메타 데이터 서버 (
ceph-mds) -
Ceph Monitor (
ceph-mon) -
Ceph Manager (
ceph-mgr) -
NFS Ganesha(
nfs-ganesha) -
Ceph Manager(
ceph-grafana)
| 호스트 이름 | 데몬 | 데몬 | 데몬 |
|---|---|---|---|
| host1 | OSD | 모니터링 및 관리자 | Prometheus |
| host2 | OSD | 모니터링 및 관리자 | RGW |
| host3 | OSD | 모니터링 및 관리자 | RGW |
| host4 | OSD | 메타 데이터 서버 | |
| host5 | OSD | 메타 데이터 서버 |
ceph-mon 및 ceph-mgr 은 공동 배치를 위해 두 개의 별도의 데몬으로 간주되지 않습니다.
Ceph 데몬을 ceph orch 명령에 --placement 옵션을 사용하여 명령행 인터페이스에서 배치하거나 서비스 사양 YAML 파일을 사용할 수 있습니다.
명령줄 예
[ceph: root@host01 /]# ceph orch apply mon --placement="host1 host2 host3"
[ceph: root@host01 /]# ceph orch apply mon --placement="host1 host2 host3"
서비스 사양 YAML 파일 예
[ceph: root@host01 /]# ceph orch apply -i mon.yml
[ceph: root@host01 /]# ceph orch apply -i mon.yml
Red Hat은 Ceph Object Gateway를 Ceph OSD 컨테이너와 연결하여 성능을 향상시키는 것이 좋습니다. 추가 하드웨어 비용을 발생시키지 않고 최고 성능을 달성하려면 호스트당 두 개의 Ceph Object Gateway 데몬을 사용합니다.
Ceph Object Gateway 명령줄 예
[ceph: root@host01 /]# ceph orch apply rgw example --placement="6 host1 host2 host3"
[ceph: root@host01 /]# ceph orch apply rgw example --placement="6 host1 host2 host3"
Ceph Object Gateway 서비스 사양 YAML 파일 예
[ceph: root@host01 /]# ceph orch apply -i rgw.yml
[ceph: root@host01 /]# ceph orch apply -i rgw.yml
아래 다이어그램은 공동 배치 및 비할당 데몬이 있는 스토리지 클러스터의 차이점을 보여줍니다.
그림 2.1. 공동 배치된 데몬
그림 2.2. 공동배치되지 않은 데몬
2.3. Red Hat Ceph Storage 워크로드 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 스토리지 클러스터의 주요 이점 중 하나는 성능 도메인을 사용하여 동일한 스토리지 클러스터 내에서 다양한 유형의 워크로드를 지원할 수 있다는 것입니다. 각 성능 도메인과 다른 하드웨어 구성을 연결할 수 있습니다. 스토리지 관리자는 적절한 성능 도메인에 스토리지 풀을 배포할 수 있으므로 애플리케이션에 특정 성능 및 비용 프로필에 맞는 스토리지를 제공할 수 있습니다. 이러한 성능 도메인에 맞게 크기가 조정되고 최적화된 서버를 선택하는 것은 Red Hat Ceph Storage 클러스터를 설계하는 데 있어 필수적인 부분입니다.
데이터를 읽고 쓰는 Ceph 클라이언트 인터페이스의 경우 Ceph 스토리지 클러스터는 클라이언트가 데이터를 저장하는 간단한 풀로 나타납니다. 그러나 스토리지 클러스터는 클라이언트 인터페이스에 완전히 투명한 방식으로 많은 복잡한 작업을 수행합니다. Ceph OSD라고 하는 Ceph 클라이언트 및 Ceph 개체 스토리지 데몬은 모두 오브젝트 스토리지 및 검색에 대해 CRUSH(Controlled Replication Under Scalable Hashing) 알고리즘을 사용합니다. Ceph OSD는 스토리지 클러스터 내의 컨테이너에서 실행할 수 있습니다.
CRUSH 맵은 클러스터 리소스의 토폴로지를 설명하고 이 맵은 클라이언트 호스트와 클러스터 내의 Ceph 모니터 호스트에 모두 존재합니다. Ceph 클라이언트 및 Ceph OSD는 모두 CRUSH 맵과 CRUSH 알고리즘을 사용합니다. Ceph 클라이언트는 OSD와 직접 통신하여 중앙 집중식 개체 조회 및 잠재적인 성능 병목 현상을 제거합니다. CRUSH 맵과 해당 피어의 통신을 인식하면 OSD에서 복제, 백필 및 복구 기능을 처리할 수 있으므로 동적 오류 복구를 수행할 수 있습니다.
Ceph는 CRUSH 맵을 사용하여 장애 도메인을 구현합니다. 또한 Ceph는 CRUSH 맵을 사용하여 성능 도메인을 구현합니다. 이 도메인은 단순히 기본 하드웨어의 성능 프로파일을 고려합니다. CRUSH 맵은 Ceph가 데이터를 저장하는 방법을 설명하고, 이는 단순한 계층 구조, 특히 재활용 그래프 및 규칙 세트로 구현됩니다. CRUSH 맵은 여러 계층 구조를 지원하여 한 가지 유형의 하드웨어 성능 프로필을 분리할 수 있습니다. Ceph는 장치 "클래스"로 성능 도메인을 구현합니다.
예를 들어 동일한 Red Hat Ceph Storage 클러스터에 이러한 성능 도메인을 공존할 수 있습니다.
- 하드 디스크 드라이브(HDD)는 일반적으로 비용 및 용량 중심 워크로드에 적합합니다.
- 처리량에 민감한 워크로드는 일반적으로 SSD(반도체 드라이브)에서 Ceph 쓰기 저널과 함께 HDD를 사용합니다.
- MySQL 및 MariaDB와 같은 IOPS 집약적 워크로드에서는 SSD를 자주 사용합니다.
그림 2.3. 성능 및 오류 도메인
워크로드
Red Hat Ceph Storage는 세 가지 주요 워크로드에 최적화되어 있습니다.
스토리지 클러스터의 가격 및 성능에 큰 영향을 미칠 수 있으므로 어떤 하드웨어를 구입할지 고려하기 전에 Red Hat Ceph Storage 클러스터에서 실행되는 워크로드를 신중하게 고려합니다. 예를 들어 워크로드가 용량에 최적화되고 처리량이 최적화된 워크로드에 하드웨어가 더 적합한 경우 하드웨어는 필요한 것보다 비용이 많이 듭니다. 반대로 워크로드가 처리량에 최적화되고 하드웨어가 용량이 최적화된 워크로드에 더 적합한 경우 스토리지 클러스터가 성능이 저하될 수 있습니다.
IOPS 최적화: 입력, 초당 출력(IOPS) 최적화 배포는 OpenStack에서 가상 시스템으로 MYSQL 또는 MariaDB 인스턴스를 실행하는 것과 같은 클라우드 컴퓨팅 작업에 적합합니다. IOPS 최적화된 배포에는 15k RPM SAS 드라이브와 같은 고성능 스토리지 및 자주 쓰기 작업을 처리하기 위해 별도의 SSD 저널이 필요합니다. 일부 IOPS 시나리오에서는 모든 Flash 스토리지를 사용하여 IOPS 및 총 처리량을 개선합니다.
IOPS가 최적화된 스토리지 클러스터에는 다음과 같은 속성이 있습니다.
- IOPS당 최소 비용.
- GB당 최대 IOPS.
- 99번째 백분위 대기 시간 일관성.
IOPS에 최적화된 스토리지 클러스터의 용도는 다음과 같습니다.
- 일반적인 블록 스토리지.
- 하드 드라이브(HDD)의 3x 복제 또는 솔리드 스테이트 드라이브(SSD)의 2x 복제.
- OpenStack 클라우드의 MySQL.
처리량 최적화: 처리량 최적화 배포는 그래픽, 오디오 및 비디오 콘텐츠와 같은 상당한 양의 데이터를 제공하는 데 적합합니다. 처리량에 최적화된 배포에는 높은 대역폭 네트워킹 하드웨어, 컨트롤러 및 하드 디스크 드라이브, 순차적 읽기 및 쓰기 기능이 필요합니다. 빠른 데이터 액세스가 요구 사항인 경우 처리량 최적화 스토리지 전략을 사용합니다. 또한 빠른 쓰기 성능이 필요한 경우 저널에 Solid State Disks (SSD)를 사용하면 쓰기 성능이 크게 향상됩니다.
처리량 최적화 스토리지 클러스터에는 다음과 같은 속성이 있습니다.
- MBps당 가장 낮은 비용(처리량)
- TB당 최대 MBps
- BTU당 최대 MBps
- Watt당 가장 높은 MBps
- 97%의 대기 시간 일관성
처리량 최적화 스토리지 클러스터에 대한 사용은 다음과 같습니다.
- 블록 또는 오브젝트 스토리지
- 3x 복제
- 비디오, 오디오 및 이미지를 위한 활성 성능 스토리지
- 4K 영상 등의 스트리밍 미디어
용량 최적화: 용량 최적화 배포는 상당한 양의 데이터를 가능한 한 저렴하게 저장하는 데 적합합니다. 용량 최적화 배포는 일반적으로 더 큰 가격대에 대한 성능을 거래합니다. 예를 들어 용량 최적화 배포에서는 저널링에 SSD를 사용하지 않고 속도가 느리고 비용이 적게 드는 SATA 드라이브를 사용하는 경우가 많습니다.
비용 및 용량 최적화 스토리지 클러스터에는 다음과 같은 속성이 있습니다.
- TB당 최소 비용
- TB당 최소 BTU 수
- TB당 필요한 최소 Watt
비용 및 용량 최적화 스토리지 클러스터에 대한 사용은 다음과 같습니다.
- 일반적으로 오브젝트 스토리지
- 사용 가능한 용량을 극대화하기 위한 지우기 코딩
- 오브젝트 아카이브
- 비디오, 오디오 및 이미지 오브젝트 리포지토리
2.4. Ceph Object Gateway 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클러스터를 설계할 때 고려해야 할 또 다른 중요한 측면은 스토리지 클러스터가 하나의 데이터 센터 사이트에 있는지 또는 여러 데이터 센터 사이트를 대상으로 하는지를 결정하는 것입니다. 다중 사이트 스토리지 클러스터는 장기적인 정전, 경사, 허리케인, 범람 또는 기타 재해와 같은 지리적으로 분산된 페일오버 및 재해 복구의 이점을 제공합니다. 또한 다중 사이트 스토리지 클러스터에는 클라이언트 애플리케이션을 사용 가능한 가장 가까운 스토리지 클러스터로 보낼 수 있는 활성 활성 구성이 있을 수 있습니다. 이는 콘텐츠 제공 네트워크에 적합한 스토리지 전략입니다. 데이터를 가능한 한 클라이언트에 가깝게 배치하는 것이 좋습니다. 이는 스트리밍 4k 비디오와 같은 처리량 집약적인 워크로드에 중요합니다.
Red Hat은 Ceph의 스토리지 풀을 생성하기 전에 영역, 영역 그룹 및 영역 이름을 식별하는 것이 좋습니다. 영역 이름을 표준 이름 지정 규칙으로 사용하는 일부 풀 이름 앞에 추가합니다.
2.4.1. 관리 데이터 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 인스턴스의 영역 구성에 정의된 일련의 풀에 관리 데이터를 저장합니다. 예를 들어 후속 섹션에서 설명하는 버킷, 사용자, 사용자 할당량 및 사용량 통계는 Ceph 스토리지 클러스터의 풀에 저장됩니다. 기본적으로 Ceph Object Gateway는 다음 풀을 생성하여 기본 영역에 매핑합니다.
-
.rgw.root -
.default.rgw.control -
.default.rgw.meta -
.default.rgw.log -
.default.rgw.buckets.index -
.default.rgw.buckets.data -
.default.rgw.buckets.non-ec
.default.rgw.buckets.index 풀은 Ceph Object Gateway에서 버킷이 생성된 후에만 생성되는 반면 .default.rgw.buckets.data 풀은 버킷에 업로드된 후 생성됩니다.
CRUSH 규칙 세트와 배치 그룹 수를 설정할 수 있도록 이러한 풀을 수동으로 생성하는 것이 좋습니다. 일반적인 구성에서 Ceph Object Gateway의 관리 데이터를 저장하는 풀은 종종 동일한 CRUSH 규칙 세트를 사용하고 관리 데이터에 10개의 풀이 있으므로 배치 그룹을 더 적게 사용합니다.
Red Hat은 .rgw.root 풀과 서비스 풀이 동일한 CRUSH 계층 구조를 사용하고 CRUSH 규칙에서 실패 도메인으로 노드를 사용하는 것이 좋습니다. Red Hat은 데이터 지속성을 위해 복제 를 사용하는 것이 좋습니다. .rgw.root 풀 및 서비스 풀에는 삭제되지 않는 것이 좋습니다.
mon_pg_warn_max_per_osd 설정은 기본적으로 풀에 너무 많은 배치 그룹을 할당하는 경우 경고합니다. 요구 사항과 하드웨어의 기능에 맞게 값을 조정할 수 있습니다. 여기서 n 은 OSD당 최대 PG 수입니다.
mon_pg_warn_max_per_osd = n
mon_pg_warn_max_per_osd = n
.rgw.root 를 포함한 서비스 풀의 경우 풀 계산기당 Ceph 배치 그룹(PG)의 권장 PG 수는 Ceph OSD당 대상 PG보다 훨씬 적습니다. 또한 계산기 4단계에서 Ceph OSD의 수가 설정되어 있는지 확인합니다.
가비지 컬렉션은 OMAP 대신 일반 RADOS 개체와 함께 .log 풀을 사용합니다. 향후 릴리스에서는 더 많은 기능이 .log 풀에 메타데이터를 저장합니다. 따라서 Red Hat은 .log 풀에 NVMe/SSD Ceph OSD를 사용하는 것이 좋습니다.
.rgw.root 풀
Ceph Object Gateway 구성이 저장된 풀입니다. 여기에는 영역, 영역 그룹 및 영역이 포함됩니다. 규칙에 따라 해당 이름이 영역 이름 앞에 추가되지 않습니다.
서비스 풀
서비스 풀은 서비스 제어, 가비지 수집, 로깅, 사용자 정보 및 사용과 관련된 오브젝트를 저장합니다. 규칙에 따라 이러한 풀 이름에는 풀 이름 앞에 영역 이름이 있습니다.
-
.ZONE_NAME.rgw.control: 제어 풀입니다. -
.ZONE_NAME.log: 로그 풀에는 create, read, update, delete와 같은 모든 버킷, 컨테이너 및 오브젝트 작업의 로그가 포함됩니다. -
.ZONE_NAME.rgw.buckets.index: 이 풀은 버킷의 인덱스를 저장합니다. -
.ZONE_NAME.rgw.buckets.data:이 풀은 버킷의 데이터를 저장합니다. -
.ZONE_NAME.rgw.meta: 메타데이터 풀은 user_keys 및 기타 중요한 메타데이터를 저장합니다. -
.ZONE_NAME.meta:users.uid: 사용자 ID 풀에는 고유한 사용자 ID 맵이 포함되어 있습니다. -
.ZONE_NAME.meta:users.keys: 키 풀에는 각 사용자 ID에 대한 액세스 키와 시크릿 키가 포함되어 있습니다. -
.ZONE_NAME.meta:users.email: 이메일 풀에는 사용자 ID와 연결된 이메일 주소가 포함되어 있습니다. -
.ZONE_NAME.meta:users.swift: Swift 풀에는 사용자 ID에 대한 Swift 하위 사용자 정보가 포함되어 있습니다.
2.4.2. 인덱스 풀 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway와 함께 사용할 OSD 하드웨어를 선택하는 경우 인덱스 풀을 저장하기 위해 SSD 또는 NVMe 드라이브 중 하나 이상의 고성능 드라이브가 있는 OSD 노드를 사용할 수 있습니다. 이는 버킷에 많은 오브젝트가 포함된 경우 특히 중요합니다.
Bluestore를 실행하는 Red Hat Ceph Storage의 경우 별도의 풀이 아닌 NVMe 드라이브를 block.db 장치로 배포하는 것이 좋습니다.
Ceph Object Gateway 인덱스 데이터는 개체 맵(OMAP)에만 작성됩니다. BlueStore의 OMAP 데이터는 OSD의 block.db 장치에 있습니다. NVMe 드라이브가 HDD OSD의 block.db 장치로 작동하고 인덱스 풀이 HDD OSD에서 지원되면 인덱스 데이터는 block.db 장치에만 기록됩니다. block.db partition/lvm이 블록의 4%에 올바르게 크기가 조정되는 한, 이 구성은 BlueStore에 필요한 모든 것입니다.
Red Hat은 인덱스 풀에 대한 HDD 장치를 지원하지 않습니다. 지원되는 구성에 대한 자세한 내용은 Red Hat Ceph Storage: 지원되는 구성 문서를 참조하십시오.
인덱스 항목은 약 200바이트의 데이터이며, rocksdb 에서 OMAP로 저장됩니다. 이는 간단한 양의 데이터이지만 Ceph Object Gateway를 사용하면 수십 또는 수백 만 개의 개체가 단일 버킷에 포함될 수 있습니다. 인덱스 풀을 고성능 스토리지 미디어의 CRUSH 계층 구조에 매핑함으로써 버킷에 많은 오브젝트가 포함된 경우 대기 시간이 크게 단축됩니다.
프로덕션 클러스터에서 일반적인 OSD 노드에는 OSD 저널과 동일한 물리 드라이브에 별도의 파티션 또는 논리 볼륨을 사용하는 인덱스 풀 또는 block.db 장치를 저장하기 위한 최소 하나의 SSD 또는 NVMe 드라이브가 있습니다.
2.4.3. 데이터 풀 링크 복사링크가 클립보드에 복사되었습니다!
데이터 풀은 Ceph Object Gateway가 특정 스토리지 정책에 대한 오브젝트 데이터를 저장하는 위치입니다. 데이터 풀은 서비스 풀의 PG 수를 줄이는 대신 PG(배포 그룹)를 완전히 보완합니다. 복제보다 훨씬 효율적이므로 데이터 풀에 삭제 코딩을 사용하는 것이 중요하며 데이터 지속성을 유지하면서 용량 요구 사항을 크게 줄일 수 있습니다.
삭제 코딩을 사용하려면 삭제 코드 프로필을 생성합니다. 자세한 내용은 Red Hat Ceph Storage Storage Strategies Guide 의 Erasure Code Profiles 섹션을 참조하십시오.
풀을 생성한 후에는 프로필을 변경할 수 없으므로 올바른 프로필을 선택하는 것이 중요합니다. 프로필을 수정하려면 다른 프로필을 사용하여 새 풀을 생성하고 이전 풀에서 새 풀로 오브젝트를 마이그레이션해야 합니다.
기본 구성은 두 개의 데이터 청크와 하나의 인코딩 청크로, 하나의 OSD만 손실될 수 있습니다. 복원력이 높은 경우 더 많은 수의 데이터 및 인코딩 청크를 고려하십시오. 예를 들어 일부 대규모 시스템은 8개의 데이터 청크와 3 인코딩 청크를 사용하므로 데이터 손실 없이 3개의 OSD가 실패할 수 있습니다.
각 데이터 및 인코딩 청크는 최소한 다른 노드나 호스트에 저장됩니다. 소규모 스토리지 클러스터의 경우 더 많은 수의 데이터 및 인코딩 청크에 대해 최소 CRUSH 장애 도메인으로 rack 을 사용할 수 없습니다. 따라서 데이터 풀은 일반적으로 host와 함께 별도의 CRUSH 계층 구조를 최소 CRUSH 장애 도메인으로 사용하는 것이 일반적입니다. Red Hat은 최소 장애 도메인으로 host를 권장합니다. 코드 청크 삭제가 동일한 호스트 내의 Ceph OSD에 저장되는 경우 실패한 저널 또는 네트워크 카드와 같은 호스트 실패로 인해 데이터가 손실될 수 있습니다.
데이터 풀을 생성하려면 풀 이름, PG 및 PGP의 수, 삭제 데이터 지속성 방법, 삭제 코드 프로필, 규칙 이름을 사용하여 ceph osd pool create 명령을 실행합니다.
2.4.4. 데이터 추가 풀 링크 복사링크가 클립보드에 복사되었습니다!
data_extra_pool 은 삭제 코딩을 사용할 수 없는 데이터를 위한 것입니다. 예를 들어 다중 파트 업로드를 사용하면 여러 부분의 동영상과 같은 큰 오브젝트를 업로드할 수 있습니다. 이 부분은 삭제 코딩 없이 먼저 저장해야 합니다. 삭제 코딩은 부분적인 업로드가 아닌 전체 오브젝트에 적용됩니다.
풀 계산기당 PG(배치 그룹)는 data_extra_pool 에 대한 풀당 PG 수를 더 적게 권장합니다. 그러나 PG 수는 서비스 풀과 동일한 PG 수이고 버킷 인덱스 풀과 동일합니다.
데이터 추가 풀을 생성하려면 풀 이름, PG 및 PGP 수, 복제된 데이터 지속성 방법 및 규칙 이름을 사용하여 ceph osd pool create 명령을 실행합니다. 예를 들면 다음과 같습니다.
ceph osd pool create .us-west.rgw.buckets.non-ec 64 64 replicated rgw-service
# ceph osd pool create .us-west.rgw.buckets.non-ec 64 64 replicated rgw-service
2.5. CRUSH 계층 구조 개발 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph 스토리지 클러스터 및 오브젝트 게이트웨이를 배포할 때 일반적으로 Ceph Object Gateway에는 기본 영역 그룹과 영역이 있습니다. Ceph 스토리지 클러스터에는 기본 풀이 있으므로 기본 CRUSH 계층 구조와 함께 CRUSH 맵과 기본 CRUSH 규칙이 사용됩니다.
기본 rbd 풀은 기본 CRUSH 규칙을 사용할 수 있습니다. Ceph 클라이언트가 클라이언트 데이터를 저장하는 데 기본 규칙 또는 계층을 삭제하지 마십시오.
프로덕션 게이트웨이는 일반적으로 게이트웨이의 사용 및 지리적 위치에 따라 이름이 지정된 사용자 지정 영역, 영역 그룹 및 영역을 사용합니다. 또한 Ceph 스토리지 클러스터에는 CRUSH 계층 구조가 여러 개의 CRUSH 맵이 있습니다.
-
서비스 풀: 하나 이상의 CRUSH 계층 구조는 서비스 풀 및 잠재적으로 데이터를 위한 것입니다. 서비스 풀에는
.rgw.root및 영역과 연결된 서비스 풀이 포함됩니다. 서비스 풀은 일반적으로 단일 CRUSH 계층 구조에 속하며 데이터 지속성에 복제를 사용합니다. 데이터 풀은 CRUSH 계층 구조를 사용할 수도 있지만, 일반적으로 이 풀은 데이터 지속성을 위해 삭제 코딩으로 구성됩니다. - 인덱스: CRUSH 계층 구조 SHOULD 는 CRUSH 계층 구조가 SSD 또는 NVMe 드라이브와 같은 고성능 미디어에 매핑되는 인덱스 풀에 사용됩니다. 버킷 인덱스는 성능 장애일 수 있습니다. Red Hat은 이 CRUSH 계층 구조에서 SSD 또는 NVMe 드라이브를 사용하는 것이 좋습니다. Ceph OSD 저널에 사용되는 SSD 또는 NVMe 드라이브에서 인덱스의 파티션을 생성합니다. 또한 인덱스는 버킷 분할을 사용하여 구성해야 합니다.
- 배치 풀: 각 배치 대상의 배치 풀에는 버킷 인덱스, 데이터 버킷, 버킷 추가 기능이 포함됩니다. 이러한 풀은 별도의 CRUSH 계층 구조에 속할 수 있습니다. Ceph Object Gateway는 여러 스토리지 정책을 지원할 수 있으므로 스토리지 정책의 버킷 풀은 IOPS에 최적화된 IOPS, 처리량 최적화 및 용량 최적화와 같은 다양한 사용 사례를 반영하여 다양한 CRUSH 계층 구조와 연관될 수 있습니다. 버킷 인덱스 풀 SHOULD 는 자체 CRUSH 계층 구조를 사용하여 버킷 인덱스 풀을 SSD 또는 NVMe 드라이브와 같은 고성능 스토리지 미디어에 매핑합니다.
2.5.1. CRUSH 루트 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리 노드의 명령줄에서 각 CRUSH 계층 구조에 대한 CRUSH 맵에 CRUSH 루트를 생성합니다. 데이터 스토리지 풀을 잠재적으로 제공할 수 있는 서비스 풀에는 CRUSH 계층 구조가 하나 이상 있어야 합니다. SSD 또는 NVMe 드라이브와 같은 고성능 스토리지 미디어에 매핑되는 버킷 인덱스 풀에 대한 CRUSH 계층 구조가 하나 이상 있어야 합니다.
CRUSH 계층 구조에 대한 자세한 내용은 Red Hat Ceph Storage Storage Strategies Guide 7 의 CRUSH 계층 구조 섹션을 참조하십시오.
CRUSH 맵을 수동으로 편집하려면 Red Hat Ceph Storage Storage Strategies Guide 7 의 CRUSH 맵 편집 섹션을 참조하십시오.
다음 예제에서 data0, 및 data 1data2 라는 호스트는 동일한 물리적 호스트를 가리키는 여러 CRUSH 계층 구조가 있으므로 data0-sas-ssd,data0-index 등의 확장된 논리 이름을 사용합니다.
일반적인 CRUSH 루트는 저널의 SAS 드라이브 및 SSD로 노드를 나타낼 수 있습니다. 예를 들면 다음과 같습니다.
버킷 인덱스의 CRUSH 루트 는 SSD 또는 NVMe 드라이브와 같은 고성능 미디어를 나타냅니다. OSD 저널을 저장하는 SSD 또는 NVMe 미디어에 파티션을 생성하는 것이 좋습니다. 예를 들면 다음과 같습니다.
2.5.2. CRUSH 맵에서 논리 호스트 이름 사용 링크 복사링크가 클립보드에 복사되었습니다!
RHCS 3 이상 릴리스에서 CRUSH는 RHCS 2 및 이전 릴리스에서 지원되지 않는 스토리지 장치 "클래스"의 개념을 지원합니다. NVMe, SSD 또는 HDD와 같이 여러 스토리지 장치가 포함된 호스트 또는 노드가 있는 RHCS 3 클러스터에서는 장치 클래스가 있는 단일 CRUSH 계층 구조를 사용하여 스토리지 장치의 클래스를 구분합니다. 이렇게 하면 논리 호스트 이름을 사용할 필요가 없습니다. RHCS 2 및 이전 릴리스에서는 각 장치 클래스에 대해 여러 CRUSH 계층 구조 및 논리 호스트 이름을 사용하여 CRUSH 계층 구조의 호스트 또는 노드를 구분합니다.
RHCS 3 이상 릴리스에서 CRUSH는 RHCS 2 및 이전 릴리스에서 지원되지 않는 스토리지 장치 "class"의 개념을 지원합니다. NVMe, SSD 또는 HDD와 같이 스토리지 장치의 여러 클래스가 포함된 호스트 또는 노드가 있는 RHCS 3 클러스터에서는 장치 클래스와 함께 단일 CRUSH 계층 구조를 사용하여 스토리지 장치의 다른 클래스를 구분합니다. 이렇게 하면 논리 호스트 이름을 사용할 필요가 없습니다. RHCS 2 및 이전 릴리스에서는 각 장치 클래스에 대해 여러 CRUSH 계층 구조 및 논리 호스트 이름을 사용하여 CRUSH 계층 구조의 호스트 또는 노드를 구분합니다.
CRUSH 맵에서 호스트 이름은 고유해야 하며 한 번만 사용해야 합니다. 호스트가 여러 CRUSH 계층 구조 및 사용 사례를 제공하는 경우 CRUSH 맵은 실제 호스트 이름이 한 번만 사용되는지 확인하기 위해 논리 호스트 이름을 사용할 수 있습니다. 예를 들어 노드에는 SSD, SSD 저널이 있는 SAS 드라이브, 공동 배치된 저널이 있는 SATA 드라이브와 같은 여러 개의 드라이브 클래스가 있을 수 있습니다. RHCS 2 및 이전 릴리스에서 동일한 호스트에 대해 여러 CRUSH 계층 구조를 생성하려면 계층에서 실제 호스트 이름 대신 논리 호스트 이름을 사용해야 버킷 이름이 CRUSH 계층 구조 내에서 고유합니다. 예를 들어 호스트 이름이 data2 인 경우 CRUSH 계층 구조에서 data2-sas-ssd 및 data2-index 와 같은 논리 이름을 사용할 수 있습니다.
앞서 언급한 예에서 호스트 data2 는 논리 이름 data2-sas-ssd 를 사용하여 SSD의 저널이 있는 SAS 드라이브를 하나의 계층 구조로 매핑합니다. osd.0 부터 osd.3 까지 OSD ID는 높은 처리량 하드웨어 구성에서 SSD 저널을 사용하는 SAS 드라이브를 나타냅니다. 이러한 OSD ID는 다음 예의 OSD ID와 다릅니다.
다음 예에서 호스트 data2 는 논리 이름 data2-index 를 사용하여 버킷 인덱스의 SSD 드라이브를 두 번째 계층 구조에 매핑합니다. OSD ID osd.4 는 버킷 인덱스 풀에 독점적으로 사용되는 SSD 드라이브 또는 기타 고속 스토리지 미디어를 나타냅니다.
논리 호스트 이름을 사용하는 경우 OSD 시작 스크립트가 시작 시 실제 호스트 이름을 사용하지 못하도록 다음 설정 중 하나가 Ceph 구성 파일에 있는지 확인합니다. 따라서 CRUSH 맵에서 데이터를 찾지 못합니다.
CRUSH 맵에서 앞의 예와 같이 논리 호스트 이름을 사용하는 경우 OSD 시작 스크립트가 초기화 시 실제 호스트 이름에 따라 호스트를 식별하지 못하도록 합니다. Ceph 구성 파일의 [global] 섹션에 다음 설정을 추가합니다.
osd_crush_update_on_start = false
osd_crush_update_on_start = false
논리적 호스트 이름을 정의하는 또 다른 방법은 Ceph 구성 파일의 [osd.<ID>] 섹션에 있는 각 OSD에 대한 CRUSH 맵의 위치를 정의하는 것입니다. OSD 시작 스크립트에서 정의하는 모든 위치를 재정의합니다. 앞서 언급한 예제에서 항목은 다음과 같을 수 있습니다.
CRUSH 맵이 실제 호스트 이름이 아닌 논리 호스트 이름을 사용할 때 예상 방법 중 하나를 사용하지 않는 경우 Ceph Storage Cluster는 OSD가 실제 호스트 이름에 매핑된다고 가정하고, Ceph Storage Cluster는 CRUSH 맵에서 실제 호스트 이름을 찾을 수 없으며 Ceph Storage 클러스터 클라이언트는 OSD와 해당 데이터를 찾을 수 없습니다.
2.5.3. CRUSH 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
기본 CRUSH 계층 구조와 마찬가지로 CRUSH 맵에는 기본 CRUSH 규칙도 포함되어 있습니다.
기본 rbd 풀에서 이 규칙을 사용할 수 있습니다. 다른 풀에서 고객 데이터를 저장하는 데 기본 규칙을 삭제하지 마십시오.
CRUSH 규칙에 대한 자세한 내용은 Red Hat Ceph Storage 7용 Red Hat Ceph Storage Strategies Guide 의 CRUSH 규칙 섹션을 참조하십시오. CRUSH 맵을 수동으로 편집하려면 Red Hat Ceph Storage 7용 Red Hat Ceph Storage Storage Strategies Guide 의 CRUSH 맵 편집 섹션을 참조하십시오.
각 CRUSH 계층 구조에 대해 CRUSH 규칙을 생성합니다. 다음 예제에서는 .rgw.root 를 포함하여 서비스 풀을 저장할 CRUSH 계층 구조의 규칙을 보여줍니다. 이 예제에서 루트 sas-ssd 는 기본 CRUSH 계층 구조로 사용됩니다. 이름 rgw-service 를 사용하여 기본 규칙과 구분합니다. step take sas-ssd line은 CRUSH 루트 생성 에서 생성된 sas-ssd 루트를 사용하도록 풀에 지시합니다. 여기서 하위 버킷에는 SAS 드라이브가 포함된 OSD 및 높은 처리량 하드웨어 구성 저널에 대해 SSD 또는 NVMe 드라이브와 같은 고성능 스토리지 미디어가 포함됩니다. 단계 chooseleaf 의 유형 랙 부분은 실패 도메인입니다. 다음 예제에서는 랙입니다.
위 예제에서 데이터가 세 번 복제되는 경우 클러스터에 비슷한 개수의 OSD 노드를 포함하는 랙이 3개 이상 있어야 합니다.
복제된 설정 유형은 데이터 지속성, 복제본 수 또는 삭제 코딩과 관련이 없습니다. 복제 만 지원됩니다.
다음 예제에서는 데이터 풀을 저장할 CRUSH 계층 구조의 규칙을 보여줍니다. 이 예에서 루트 sass d 는 기본 CRUSH 계층 구조로 사용됩니다. 서비스 규칙과 동일한 CRUSH 계층 구조입니다. rgw-throughput 을 사용하여 기본 규칙과 rgw-service 를 구분합니다. step take sas-ssd line은 CRUSH 루트 생성 에서 생성된 sas-ssd 루트를 사용하도록 풀에 지시합니다. 여기서 하위 버킷에는 SAS 드라이브가 포함된 OSD 및 높은 처리량 하드웨어 구성에서 SSD 또는 NVMe 드라이브와 같은 고성능 스토리지 미디어가 포함됩니다. 단계 chooseleaf 의 유형 호스트 부분은 실패 도메인입니다. 다음 예제에서는 호스트입니다. 규칙은 동일한 CRUSH 계층 구조이지만 다른 오류 도메인을 사용합니다.
위 예에서 풀이 기본값보다 많은 수의 데이터 및 인코딩 청크를 사용하여 삭제 코딩을 사용하는 경우 클러스터에 유사한 수의 OSD 노드가 포함된 랙이 있어야 삭제 코딩 청크를 용이하게 합니다. 소규모 클러스터의 경우 이는 실용적이지 않을 수 있으므로 위 예제는 host 를 CRUSH 장애 도메인으로 사용합니다.
다음 예제에서는 인덱스 풀을 저장할 CRUSH 계층 구조의 규칙을 보여줍니다. 이 예에서 루트 인덱스 는 기본 CRUSH 계층 구조 역할을 합니다. rgw-index 를 사용하여 rgw-service 및 rgw-throughput 과 구별합니다. step take index 행은 CRUSH 루트 생성 에서 생성된 인덱스 루트를 사용하도록 지시합니다. 하위 버킷에는 SSD 또는 NVMe 드라이브와 같은 고성능 스토리지 미디어 또는 OSD 저널도 저장하는 SSD 또는 NVMe 드라이브의 파티션이 포함되어 있습니다. 단계 chooseleaf 의 유형 랙 부분은 실패 도메인입니다. 다음 예제에서는 랙입니다.
2.6. Ceph Object Gateway 다중 사이트 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 다중 사이트 구성에는 두 개 이상의 Red Hat Ceph Storage 클러스터와 Ceph Object Gateway 인스턴스가 각각 하나씩 필요합니다. 일반적으로 두 개의 Red Hat Ceph Storage 클러스터는 지리적으로 별도의 위치에 있지만 이와 동일한 다중 사이트 구성은 동일한 물리적 사이트에 있는 두 개의 Red Hat Ceph Storage 클러스터에서 작동할 수 있습니다.
다중 사이트 구성에는 기본 영역 그룹과 기본 영역이 필요합니다. 또한 각 영역 그룹에는 기본 영역이 필요합니다. 영역 그룹에는 하나 이상의 보조 영역이 있을 수 있습니다.
CLI 또는 Red Hat Ceph Storage 대시보드를 통해 다중 사이트를 구성할 수 있습니다. 자세한 내용은 Ceph 대시보드에서 다중 사이트 오브젝트 게이트웨이 구성 을 참조하십시오.
영역의 기본 영역 그룹 내의 기본 영역은 사용자, 할당량 및 버킷을 포함하여 영역 메타데이터의 기본 복사본을 저장합니다. 이 메타데이터는 보조 영역 및 보조 영역 그룹과 자동으로 동기화됩니다. radosgw-admin CLI(명령줄 인터페이스)에서 발행된 메타데이터 작업은 기본 영역 그룹의 기본 영역 내의 노드에서 실행되어야 보조 영역 그룹 및 영역에 동기화되도록 해야 합니다. 현재 보조 영역 및 영역 그룹에서 메타데이터 작업을 실행할 수 있지만 동기화 되지 않아 메타데이터의 조각화가 발생할 수 있으므로 권장되지 않습니다.
아래 다이어그램은 다중 사이트 Ceph Object Gateway 환경에서 가능한 하나와 두 개의 영역 구성을 보여줍니다.
그림 2.4. 1개의 Cryostat
그림 2.5. 두 개의 Cryostat
그림 2.6. 두 개의 Variant
2.7. 스토리지 크기 조정 고려 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 설계에서 가장 중요한 요소 중 하나는 스토리지 요구 사항(크기)을 결정하는 것입니다. Ceph 스토리지는 페타바이트 이상으로 확장되도록 설계되었습니다. 다음 예제는 Ceph 스토리지 클러스터의 일반적인 크기입니다.
- 소규모: 250 테라바이트
- 중간: 1 페타바이트
- Large: 2 페타바이트 이상
현재 요구 사항과 가까운 미래의 요구 사항이 포함됩니다. 게이트웨이 클라이언트가 클러스터에 새 데이터를 추가할 속도를 고려합니다. 사용 사례와 다를 수 있습니다. 예를 들어, 4k 동영상 기록 또는 의료 이미지 저장은 금융 시장 데이터와 같이 저장 집약적인 정보보다 상당한 양의 데이터를 더 빠르게 추가할 수 있습니다. 또한 복제 및 삭제 코딩과 같은 데이터 지속성 방법은 필요한 스토리지 미디어에 상당한 영향을 미칠 수 있습니다.
크기 조정에 대한 자세한 내용은 OSD 하드웨어를 선택하기 위한 Red Hat Ceph Storage 하드웨어 가이드 및 관련 링크를 참조하십시오.
2.8. 스토리지 밀도 고려 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 설계의 또 다른 중요한 측면은 스토리지 밀도를 포함합니다. 일반적으로 스토리지 클러스터는 최소 10개의 노드에 걸쳐 데이터를 저장하여 복제, 백필 및 복구 시 적절한 성능을 보장합니다. 스토리지 클러스터에 노드가 10개 이상인 노드에 오류가 있는 경우 데이터의 10%만 남아 있는 노드로 이동해야 합니다. 노드 수가 크게 적으면 데이터의 백분율이 남아 있는 노드로 이동해야 합니다. 또한, 스토리지 클러스터가 데이터를 쓸 수 있도록 노드 실패를 수용하려면 full_ratio 및 near_full_ratio 옵션을 설정해야 합니다. 따라서 스토리지 밀도를 고려해야 합니다. 높은 스토리지 밀도가 반드시 좋은 것은 아닙니다.
스토리지 밀도가 높은 더 많은 노드를 선호하는 또 다른 요소는 삭제 코딩입니다. 삭제 코딩을 사용하여 오브젝트를 작성하고 노드를 최소 CRUSH 장애 도메인으로 사용할 때 Ceph 스토리지 클러스터에는 데이터 및 코딩 청크만큼 많은 노드가 필요합니다. 예를 들어 k=8 을 사용하는 클러스터에는 각 데이터 또는 코딩 청크가 별도의 노드에 저장되도록 k=8개 이상의 노드가 11개 이상 있어야 합니다.
핫스케이핑도 중요한 고려 사항입니다. 대부분의 최신 서버는 드라이브 핫스케이핑을 지원합니다. 그러나 일부 하드웨어 구성에서는 드라이브를 교체하려면 두 개 이상의 드라이브를 제거해야 합니다. Red Hat은 실패한 디스크를 스와핑할 때 필요한 것보다 더 많은 Ceph OSD를 가져올 수 있으므로 이러한 구성을 방지하는 것이 좋습니다.
2.9. Ceph Monitor 노드의 디스크 고려 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Monitor는 rocksdb 를 사용하며 이는 동기 쓰기 대기 시간에 민감합니다. Red Hat은 Ceph Monitor 데이터를 저장하기 위해 SSD 디스크를 사용하는 것이 좋습니다. 순차적 쓰기 및 처리량 특성이 충분한 SSD 디스크를 선택합니다.
2.10. 백필 및 복구 설정 조정 링크 복사링크가 클립보드에 복사되었습니다!
I/O는 백필링 및 복구 작업 둘 다에 부정적인 영향을 미치므로 성능이 저하되고 최종 사용자가 불만족합니다. 클러스터 확장 또는 복구 중에 I/O 수요를 수용하려면 Ceph 구성 파일에서 다음 옵션과 값을 설정합니다.
[osd] osd_max_backfills = 1 osd_recovery_max_active = 1 osd_recovery_op_priority = 1
[osd]
osd_max_backfills = 1
osd_recovery_max_active = 1
osd_recovery_op_priority = 1
2.11. 클러스터 맵 크기 조정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 ceph-osd 데몬은 500 이전 osdmaps를 캐시합니다. 중복 제거에도 불구하고 맵은 데몬당 많은 메모리를 사용할 수 있습니다. Ceph 구성에서 캐시 크기를 조정하면 메모리 사용량을 크게 줄일 수 있습니다. 예를 들면 다음과 같습니다.
[ceph: root@host01 /]# ceph config set global osd_map_message_max 10 [ceph: root@host01 /]# ceph config set osd osd_map_cache_size 20 [ceph: root@host01 /]# ceph config set osd osd_map_share_max_epochs 10 [ceph: root@host01 /]# ceph config set osd osd_pg_epoch_persisted_max_stale 10
[ceph: root@host01 /]# ceph config set global osd_map_message_max 10
[ceph: root@host01 /]# ceph config set osd osd_map_cache_size 20
[ceph: root@host01 /]# ceph config set osd osd_map_share_max_epochs 10
[ceph: root@host01 /]# ceph config set osd osd_pg_epoch_persisted_max_stale 10
Red Hat Ceph Storage 버전 3 이상의 경우 ceph-manager 데몬이 PG 쿼리를 처리하므로 클러스터 맵은 성능에 영향을 미치지 않아야 합니다.
2.12. 스크럽 조정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Ceph는 매주 간단한 스크럽과 깊은 스크럽을 수행합니다. Light scrubbing은 오브젝트 크기와 체크섬을 확인하여 PG가 동일한 오브젝트 데이터를 저장하고 있는지 확인합니다. 시간이 지남에 따라 디스크 섹터는 오브젝트 크기 및 체크섬에 관계없이 잘못된 상태가 될 수 있습니다. 딥 스크러빙은 실제 콘텐츠가 동일한지 확인하기 위해 해당 복제본과 함께 오브젝트의 콘텐츠를 확인합니다. 이와 관련하여 딥러빙은 fsck 방식으로 데이터 무결성을 보장하지만 절차는 클러스터에 I/O 페널티를 부과합니다. 간단한 스크러빙도 I/O에 영향을 미칠 수 있습니다.
기본 설정을 사용하면 Ceph OSD에서 최대 작동 시간 또는 로드가 많은 기간과 같은 inopportune 시간에 스크럽을 시작할 수 있습니다. 최종 사용자는 작업이 최종 사용자 작업과 충돌할 때 대기 시간 및 성능이 저하될 수 있습니다.
최종 사용자가 성능이 저하되는 것을 방지하기 위해 Ceph는 더 낮은 로드를 사용하거나 사용량이 적은 기간으로 스크럽을 제한할 수 있는 여러 가지 스크럽 설정을 제공합니다. 자세한 내용은 Red Hat Ceph Storage 구성 가이드의 OSD Scrubbing the OSD 섹션을 참조하십시오.
클러스터에서 낮에 높은 로드가 발생하고 야간에 지연 시간이 짧은 경우 야간 시간으로 스크럽을 제한하는 것이 좋습니다. 예를 들면 다음과 같습니다.
[osd] osd_scrub_begin_hour = 23 #23:01H, or 10:01PM. osd_scrub_end_hour = 6 #06:01H or 6:01AM.
[osd]
osd_scrub_begin_hour = 23 #23:01H, or 10:01PM.
osd_scrub_end_hour = 6 #06:01H or 6:01AM.
시간 제약 조건이 스크럽 스케줄을 결정하는 효과적인 방법이 아닌 경우 osd_scrub_load_threshold 를 사용하는 것이 좋습니다. 기본값은 0.5 이지만 낮은 로드 조건을 위해 수정할 수 있습니다. 예를 들면 다음과 같습니다.
[osd] osd_scrub_load_threshold = 0.25
[osd]
osd_scrub_load_threshold = 0.25
2.13. objecter_inflight_ops증가 링크 복사링크가 클립보드에 복사되었습니다!
확장성을 개선하기 위해 허용되는 의도하지 않은 I/O 요청의 최대 수를 지정하는 objecter_inflight_ops 매개변수 값을 편집할 수 있습니다. 이 매개변수는 클라이언트 트래픽 제어에 사용됩니다.
objecter_inflight_ops = 24576
objecter_inflight_ops = 24576
2.14. Increase rgw_thread_pool_size 링크 복사링크가 클립보드에 복사되었습니다!
확장성을 개선하기 위해 스레드 풀의 크기인 rgw_thread_pool_size 매개변수 값을 편집할 수 있습니다. 새로운 Fence frontend 는 새로운 연결을 수락하기 위해 스레드 풀 크기에 의해 제한되지 않습니다.
rgw_thread_pool_size = 512
rgw_thread_pool_size = 512
2.15. Ceph를 실행할 때 Linux 커널 튜닝 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
프로덕션 Red Hat Ceph Storage 클러스터는 일반적으로 운영 체제 조정, 특히 제한 및 메모리 할당의 이점을 제공합니다. 스토리지 클러스터 내의 모든 호스트에 대해 조정이 설정되어 있는지 확인합니다. 추가 지침을 요구하는 Red Hat 지원 케이스를 열 수도 있습니다.
파일 디스크립터 증가
Ceph Object Gateway는 파일 디스크립터가 부족하면 중지될 수 있습니다. Ceph Object Gateway 호스트에서 /etc/security/limits.conf 파일을 수정하여 Ceph Object Gateway의 파일 디스크립터를 늘릴 수 있습니다.
ceph soft nofile unlimited
ceph soft nofile unlimited
대규모 스토리지 클러스터의 ulimit 값 조정
대규모 스토리지 클러스터에서 Ceph 관리 명령을 실행하는 경우(예: 1024 Ceph OSD 이상) 다음 내용으로 관리 명령을 실행하는 각 호스트에 /etc/security/limits.d/50-ceph.conf 파일을 만듭니다.
USER_NAME soft nproc unlimited
USER_NAME soft nproc unlimited
USER_NAME을 Ceph 관리 명령을 실행하는 루트가 아닌 사용자 계정의 이름으로 바꿉니다.
루트 사용자의 ulimit 값은 Red Hat Enterprise Linux에서 기본적으로 ulimit으로 이미 설정되어 있습니다.
3장. Deployment 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 명령줄 인터페이스 또는 서비스 사양과 함께 Ceph Orchestrator를 사용하여 Ceph Object Gateway를 배포할 수 있습니다. 다중 사이트 Ceph Object Gateway를 구성하고 Ceph Orchestrator를 사용하여 Ceph Object Gateway를 제거할 수도 있습니다.
cephadm 명령은 Ceph Object Gateway를 다중 사이트 배포에서 단일 클러스터 배포 또는 특정 영역 및 영역을 관리하는 데몬 컬렉션으로 배포합니다.
cephadm 에서는 ceph.conf 파일 또는 명령줄 옵션 대신 Ceph Monitor 구성 데이터베이스를 사용하여 Ceph Object Gateway 데몬이 구성됩니다. 구성이 client.rgw 섹션에 없는 경우 Ceph Object Gateway 데몬은 기본 설정으로 시작하여 포트 80 에 바인딩합니다.
이 섹션에서는 다음 관리 작업에 대해 설명합니다.
사전 요구 사항
- 실행 중이고 정상적인 Red Hat Ceph Storage 클러스터입니다.
- 모든 노드에 대한 루트 수준 액세스.
- 스토리지 클러스터에서 사용 가능한 노드
- 모든 관리자, 모니터 및 OSD는 스토리지 클러스터에 배포됩니다.
3.1. 명령줄 인터페이스를 사용하여 Ceph Object Gateway 배포 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Orchestrator를 사용하여 명령줄 인터페이스에서 ceph orch 명령을 사용하여 Ceph Object Gateway를 배포할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 모든 노드에 대한 루트 수준 액세스.
- 호스트가 클러스터에 추가됩니다.
- 모든 manager, monitor 및 OSD 데몬이 배포됩니다.
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Ceph 개체 게이트웨이 데몬은 다음과 같은 세 가지 방법으로 배포할 수 있습니다.
방법 1
영역, 영역 그룹, 영역을 생성한 다음 호스트 이름으로 배치 사양을 사용합니다.
영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REALM_NAME --default
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --default
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --master --default
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=default --master --default
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=default --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=test_zone --master --default
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=test_zone --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --rgw-realm=REALM_NAME --commit
radosgw-admin period update --rgw-realm=REALM_NAME --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin period update --rgw-realm=test_realm --commit
[ceph: root@host01 /]# radosgw-admin period update --rgw-realm=test_realm --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph orch apply명령을 실행합니다.구문
ceph orch apply rgw NAME [--realm=REALM_NAME] [--zone=ZONE_NAME] [--zonegroup=ZONE_GROUP_NAME] --placement="NUMBER_OF_DAEMONS [HOST_NAME_1 HOST_NAME_2]"
ceph orch apply rgw NAME [--realm=REALM_NAME] [--zone=ZONE_NAME] [--zonegroup=ZONE_GROUP_NAME] --placement="NUMBER_OF_DAEMONS [HOST_NAME_1 HOST_NAME_2]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch apply rgw test --realm=test_realm --zone=test_zone --zonegroup=default --placement="2 host01 host02"
[ceph: root@host01 /]# ceph orch apply rgw test --realm=test_realm --zone=test_zone --zonegroup=default --placement="2 host01 host02"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
방법 2
임의의 서비스 이름을 사용하여 단일 클러스터 배포를 위해 두 개의 Ceph Object Gateway 데몬을 배포합니다.
구문
ceph orch apply rgw SERVICE_NAME
ceph orch apply rgw SERVICE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch apply rgw foo
[ceph: root@host01 /]# ceph orch apply rgw fooCopy to Clipboard Copied! Toggle word wrap Toggle overflow
방법 3
레이블이 지정된 호스트 세트에서 임의의 서비스 이름을 사용합니다.
구문
ceph orch host label add HOST_NAME_1 LABEL_NAME ceph orch host label add HOSTNAME_2 LABEL_NAME ceph orch apply rgw SERVICE_NAME --placement="label:LABEL_NAME count-per-host:NUMBER_OF_DAEMONS" --port=8000
ceph orch host label add HOST_NAME_1 LABEL_NAME ceph orch host label add HOSTNAME_2 LABEL_NAME ceph orch apply rgw SERVICE_NAME --placement="label:LABEL_NAME count-per-host:NUMBER_OF_DAEMONS" --port=8000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NUMBER_OF_DAEMONS 는 각 호스트에 배포된 Ceph 개체 게이트웨이 수를 제어합니다. 추가 비용이 발생하지 않고 최고 성능을 달성하려면 이 값을 2로 설정합니다.
예제
[ceph: root@host01 /]# ceph orch host label add host01 rgw # the 'rgw' label can be anything [ceph: root@host01 /]# ceph orch host label add host02 rgw [ceph: root@host01 /]# ceph orch apply rgw foo --placement="label:rgw count-per-host:2" --port=8000
[ceph: root@host01 /]# ceph orch host label add host01 rgw # the 'rgw' label can be anything [ceph: root@host01 /]# ceph orch host label add host02 rgw [ceph: root@host01 /]# ceph orch apply rgw foo --placement="label:rgw count-per-host:2" --port=8000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
서비스를 나열합니다.
예제
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트, 데몬 및 프로세스를 나열합니다.
구문
ceph orch ps --daemon_type=DAEMON_NAME
ceph orch ps --daemon_type=DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch ps --daemon_type=rgw
[ceph: root@host01 /]# ceph orch ps --daemon_type=rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 서비스 사양을 사용하여 Ceph Object Gateway 배포 링크 복사링크가 클립보드에 복사되었습니다!
기본 또는 사용자 지정 영역, 영역 및 영역 그룹과 함께 서비스 사양을 사용하여 Ceph Object Gateway를 배포할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 부트 스트랩된 호스트에 대한 루트 수준 액세스.
- 호스트가 클러스터에 추가됩니다.
- 모든 manager, monitor, OSD 데몬이 배포됩니다.
프로세스
root 사용자로 사양 파일을 생성합니다.
예제
touch radosgw.yml
[root@host01 ~]# touch radosgw.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object 게이트웨이 종료/다시 시작 중에 rgw_graceful_stop 를 'true'로 설정하여
rgw_exit_timeout_secs매개변수에 정의된 기간 동안rgw_graceful_stop을 'true'로 설정하도록 S3 요청을 구성합니다.구문
ceph config set client.rgw rgw_graceful_stop true ceph config set client.rgw rgw_exit_timeout_secs 120
ceph config set client.rgw rgw_graceful_stop true ceph config set client.rgw rgw_exit_timeout_secs 120Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고컨테이너화된 배포의 경우
ceph orch stop/restart명령으로 예상대로 작동하려면--stop-timeout=120(또는 rgw_exit_timeout_secs 구성 값)의 추가extra_container_agrs구성도 필요합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 영역, 영역, 영역 그룹에 대한 다음 세부 정보를 포함하도록
radosgw.yml파일을 편집합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NUMBER_OF_DAEMONS 는 각 호스트에 배포된 Ceph Object Gateway 수를 제어합니다. 추가 비용이 발생하지 않고 최고 성능을 달성하려면 이 값을 2로 설정합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자 지정 영역, 영역 및 영역 그룹의 경우 리소스를 생성한 다음
radosgw.yml파일을 생성합니다.사용자 지정 영역, 영역 및 영역 그룹을 생성합니다.
예제
radosgw-admin realm create --rgw-realm=test_realm --default radosgw-admin zonegroup create --rgw-zonegroup=test_zonegroup --default radosgw-admin zone create --rgw-zonegroup=test_zonegroup --rgw-zone=test_zone --default radosgw-admin period update --rgw-realm=test_realm --commit
[root@host01 ~]# radosgw-admin realm create --rgw-realm=test_realm --default [root@host01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=test_zonegroup --default [root@host01 ~]# radosgw-admin zone create --rgw-zonegroup=test_zonegroup --rgw-zone=test_zone --default [root@host01 ~]# radosgw-admin period update --rgw-realm=test_realm --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 세부 정보를 사용하여
radosgw.yml파일을 생성합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
radosgw.yml파일을 컨테이너의 디렉터리에 마운트합니다.예제
cephadm shell --mount radosgw.yml:/var/lib/ceph/radosgw/radosgw.yml
[root@host01 ~]# cephadm shell --mount radosgw.yml:/var/lib/ceph/radosgw/radosgw.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고쉘을 종료할 때마다 데몬을 배포하기 전에 컨테이너에 파일을 마운트해야 합니다.
서비스 사양을 사용하여 Ceph Object Gateway를 배포합니다.
구문
ceph orch apply -i FILE_NAME.yml
ceph orch apply -i FILE_NAME.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/radosgw.yml
[ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/radosgw.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
서비스를 나열합니다.
예제
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트, 데몬 및 프로세스를 나열합니다.
구문
ceph orch ps --daemon_type=DAEMON_NAME
ceph orch ps --daemon_type=DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch ps --daemon_type=rgw
[ceph: root@host01 /]# ceph orch ps --daemon_type=rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. Ceph Orchestrator를 사용하여 다중 사이트 Ceph Object Gateway 배포 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Orchestrator는 Ceph Object Gateway에 대한 다중 사이트 구성 옵션을 지원합니다.
각 오브젝트 게이트웨이가 활성-활성 영역 구성에서 작동하도록 구성하여 기본이 아닌 영역에 쓰기를 허용할 수 있습니다. 다중 사이트 구성은 영역이라는 컨테이너 내에 저장됩니다.
영역은 영역 그룹, 영역 및 기간을 저장합니다. rgw 데몬은 별도의 동기화 에이전트가 필요하지 않은 동기화를 처리하므로 active-active 구성으로 작동합니다.
CLI(명령줄 인터페이스)를 사용하여 다중 사이트 영역을 배포할 수도 있습니다.
다음 구성에서는 두 개 이상의 Red Hat Ceph Storage 클러스터가 지리적으로 별도의 위치에 있다고 가정합니다. 그러나 구성은 동일한 사이트에서도 작동합니다.
사전 요구 사항
- 두 개 이상의 실행 중인 Red Hat Ceph Storage 클러스터
- 각 Red Hat Ceph Storage 클러스터에 하나씩 두 개 이상의 Ceph Object Gateway 인스턴스.
- 모든 노드에 대한 루트 수준 액세스.
- 노드 또는 컨테이너가 스토리지 클러스터에 추가됩니다.
- 모든 Ceph Manager, Monitor 및 OSD 데몬이 배포됩니다.
프로세스
cephadm쉘에서 기본 영역을 구성합니다.영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REALM_NAME --default
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --default
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터에 단일 영역이 있는 경우
--default플래그를 지정합니다.기본 영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_PRIMARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 --master --default
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_PRIMARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --master --default
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=PRIMARY_ZONE_GROUP_NAME --rgw-zone=PRIMARY_ZONE_NAME --endpoints=http://RGW_PRIMARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY
radosgw-admin zone create --rgw-zonegroup=PRIMARY_ZONE_GROUP_NAME --rgw-zone=PRIMARY_ZONE_NAME --endpoints=http://RGW_PRIMARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-1 --endpoints=http://rgw1:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-1 --endpoints=http://rgw1:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본 영역, 영역 그룹 및 관련 풀을 삭제합니다.
중요데이터를 저장하기 위해 기본 영역 및 영역 그룹을 사용하는 경우 기본 영역 및 해당 풀을 삭제하지 마십시오. 또한 기본 영역 그룹을 제거하면 시스템 사용자가 삭제됩니다.
기본영역 및 zonegroup에서 이전 데이터에 액세스하려면radosgw-admin명령에서--rgw-zone default및--rgw-zonegroup 기본값을 사용합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템 사용자를 생성합니다.
구문
radosgw-admin user create --uid=USER_NAME --display-name="USER_NAME" --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY --system
radosgw-admin user create --uid=USER_NAME --display-name="USER_NAME" --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY --systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin user create --uid=zone.user --display-name="Zone user" --system
[ceph: root@host01 /]# radosgw-admin user create --uid=zone.user --display-name="Zone user" --systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow access_key및secret_key를 기록합니다.기본 영역에 액세스 키와 시스템 키를 추가합니다.
구문
radosgw-admin zone modify --rgw-zone=PRIMARY_ZONE_NAME --access-key=ACCESS_KEY --secret=SECRET_KEY
radosgw-admin zone modify --rgw-zone=PRIMARY_ZONE_NAME --access-key=ACCESS_KEY --secret=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=us-east-1 --access-key=NE48APYCAODEPLKBCZVQ--secret=u24GHQWRE3yxxNBnFBzjM4jn14mFIckQ4EKL6LoW
[ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=us-east-1 --access-key=NE48APYCAODEPLKBCZVQ--secret=u24GHQWRE3yxxNBnFBzjM4jn14mFIckQ4EKL6LoWCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm쉘 외부에서 스토리지 클러스터 및 프로세스의FSID를 가져옵니다.예제
systemctl list-units | grep ceph
[root@host01 ~]# systemctl list-units | grep cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 데몬을 시작합니다.
구문
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-1.host01.ahdtsw.service systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-1.host01.ahdtsw.service
[root@host01 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-1.host01.ahdtsw.service [root@host01 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-1.host01.ahdtsw.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Cephadm 쉘에서 보조 영역을 구성합니다.
호스트에서 기본 영역 구성을 가져옵니다.
구문
radosgw-admin realm pull --rgw-realm=PRIMARY_REALM --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY --default
radosgw-admin realm pull --rgw-realm=PRIMARY_REALM --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin realm pull --rgw-realm=test_realm --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ --default
[ceph: root@host04 /]# radosgw-admin realm pull --rgw-realm=test_realm --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에서 기본 기간 구성을 가져옵니다.
구문
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 영역을 구성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME \ --rgw-zone=SECONDARY_ZONE_NAME --endpoints=http://RGW_SECONDARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 \ --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY \ --endpoints=http://FQDN:80 \ [--read-only]radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME \ --rgw-zone=SECONDARY_ZONE_NAME --endpoints=http://RGW_SECONDARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 \ --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY \ --endpoints=http://FQDN:80 \ [--read-only]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본 영역을 삭제합니다.
중요데이터를 저장하기 위해 기본 영역 및 영역 그룹을 사용하는 경우 기본 영역 및 해당 풀을 삭제하지 마십시오.
기본영역 및 zonegroup에서 이전 데이터에 액세스하려면radosgw-admin명령에서--rgw-zone default및--rgw-zonegroup 기본값을 사용합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set SERVICE_NAME rgw_zone SECONDARY_ZONE_NAME
ceph config set SERVICE_NAME rgw_zone SECONDARY_ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph config set rgw rgw_zone us-east-2
[ceph: root@host04 /]# ceph config set rgw rgw_zone us-east-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin period update --commit
[ceph: root@host04 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cephadm 쉘 외부에서 스토리지 클러스터 및 프로세스의 FSID를 가져옵니다.
예제
systemctl list-units | grep ceph
[root@host04 ~]# systemctl list-units | grep cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 데몬을 시작합니다.
구문
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service
[root@host04 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service [root@host04 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
선택 사항: 배치 사양을 사용하여 다중 사이트 Ceph Object Gateway를 배포합니다.
구문
ceph orch apply rgw NAME --realm=REALM_NAME --zone=PRIMARY_ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
ceph orch apply rgw NAME --realm=REALM_NAME --zone=PRIMARY_ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph orch apply rgw east --realm=test_realm --zone=us-east-1 --placement="2 host01 host02"
[ceph: root@host04 /]# ceph orch apply rgw east --realm=test_realm --zone=us-east-1 --placement="2 host01 host02"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
동기화 상태를 확인하여 배포를 확인합니다.
예제
[ceph: root@host04 /]# radosgw-admin sync status
[ceph: root@host04 /]# radosgw-admin sync statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Ceph Orchestrator를 사용하여 Ceph Object Gateway 제거 링크 복사링크가 클립보드에 복사되었습니다!
ceph orch rm 명령을 사용하여 Ceph 개체 게이트웨이 데몬을 제거할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 모든 노드에 대한 루트 수준 액세스.
- 호스트가 클러스터에 추가됩니다.
- 호스트에 배포된 하나 이상의 Ceph 오브젝트 게이트웨이 데몬입니다.
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 나열합니다.
예제
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 제거합니다.
구문
ceph orch rm SERVICE_NAME
ceph orch rm SERVICE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch rm rgw.test_realm.test_zone_bb
[ceph: root@host01 /]# ceph orch rm rgw.test_realm.test_zone_bbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
호스트, 데몬 및 프로세스를 나열합니다.
구문
ceph orch ps
ceph orch psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph orch psCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. Ceph Manager rgw 모듈 사용 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 rgw 모듈을 사용하여 Ceph Object Gateway, 단일 사이트 및 다중 사이트를 배포할 수 있습니다. Ceph Object 영역, zonegroup 및 다양한 관련 엔티티를 부트 스트랩하고 구성하는 데 도움이 됩니다.
새로 생성된 또는 기존 영역에 사용 가능한 토큰을 사용할 수 있습니다. 이 토큰은 영역 정보 및 해당 마스터 영역 끝점 인증 데이터를 캡슐화하는 base64 문자열입니다.
다중 사이트 구성에서 이러한 토큰을 사용하여 rgw zone create 명령을 사용하여 기본 클러스터의 마스터 영역과 동기화하는 다른 클러스터에 보조 영역을 생성하는 데 사용할 수 있습니다.
3.5.1. rgw 모듈을 사용하여 Ceph Object Gateway 배포 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 영역을 부트 스트랩하면 새 영역 엔티티, 새 영역 그룹, 새 영역이 생성됩니다. rgw 모듈은 해당 Ceph Object Gateway 데몬을 생성하고 배포하도록 오케스트레이터에 지시합니다.
ceph mgr 모듈 enable . rgw 명령을 사용하여 rgw 모듈을 활성화합니다rgw 모듈을 활성화한 후 명령줄에서 인수를 전달하거나 yaml 사양 파일을 사용하여 영역을 부트스트랩합니다.
사전 요구 사항
- 하나 이상의 OSD가 배포된 실행 중인 Red Hat Ceph Storage 클러스터
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 'rgw'module을 활성화합니다.
예제
[ceph: root@host01 /]# ceph mgr module enable rgw
[ceph: root@host01 /]# ceph mgr module enable rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령줄 또는 yaml 사양 파일을 사용하여 Ceph Object Gateway 영역을 부트스트랩합니다.
옵션 1: 명령줄 인터페이스를 사용합니다.
구문
ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]
ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.
[ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 옵션 2: yaml 사양 파일을 사용합니다.
root 사용자로 yaml 파일을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 영역 부트스트랩 중에
hostnames매개변수를 zonegroup에 추가할 수 있습니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML 파일을 컨테이너의 디렉터리에 마운트합니다.
예제
cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yaml
[root@host01 ~]# cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역을 부트스트랩합니다.
예제
[ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yaml
[ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고rgw모듈에서 사용하는 사양 파일은 오케스트레이터에서 사용하는 형식과 동일합니다. 따라서 SSL 인증서와 같은 고급 구성 기능을 포함하여 지원되는 모든 오케스트레이션 Ceph Object Gateway 매개변수를 제공할 수 있습니다.
사용 가능한 토큰을 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ceph Object Gateway 데몬이 배포되기 전에 위의 명령을 실행하면 엔드포인트가 없으므로 토큰이 없다는 메시지가 표시됩니다.
검증
오브젝트 게이트웨이 배포를 확인합니다.
예제
[ceph: root@host01 /]# ceph orch list --daemon-type=rgw NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID rgw.myrealm.myzonegroup.ceph-saya-6-osd-host01.eburst ceph-saya-6-osd-host01 *:80 running (111m) 9m ago 111m 82.3M - 17.2.6-22.el9cp 2d5b080de0b0 2f3eaca7e88e
[ceph: root@host01 /]# ceph orch list --daemon-type=rgw NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID rgw.myrealm.myzonegroup.ceph-saya-6-osd-host01.eburst ceph-saya-6-osd-host01 *:80 running (111m) 9m ago 111m 82.3M - 17.2.6-22.el9cp 2d5b080de0b0 2f3eaca7e88eCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 부트스트랩을
통해 호스트이름이 추가되었는지 확인합니다.구문
radosgw-admin zonegroup get --rgw-zonegroup _zone_group_name_
radosgw-admin zonegroup get --rgw-zonegroup _zone_group_name_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 사양 파일의
zonegroup_hostnames에 지정된 호스트 이름 목록은 zonegroups의hostnames섹션을 참조하십시오.
3.5.2. rgw 모듈을 사용하여 Ceph Object Gateway 다중 사이트 배포 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 영역을 부트 스트랩하면 새 영역 엔티티, 새 영역 그룹, 새 영역이 생성됩니다. 다중 사이트 동기화 작업에 사용할 수 있는 새 시스템 사용자를 구성합니다. rgw 모듈은 해당 Ceph Object Gateway 데몬을 생성하고 배포하도록 오케스트레이터에 지시합니다.
ceph mgr 모듈 enable . rgw 명령을 사용하여 rgw 모듈을 활성화합니다rgw 모듈을 활성화한 후 명령줄에서 인수를 전달하거나 yaml 사양 파일을 사용하여 영역을 부트스트랩합니다.
사전 요구 사항
- 하나 이상의 OSD가 배포된 실행 중인 Red Hat Ceph Storage 클러스터
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 'rgw'module을 활성화합니다.
예제
[ceph: root@host01 /]# ceph mgr module enable rgw
[ceph: root@host01 /]# ceph mgr module enable rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령줄 또는 yaml 사양 파일을 사용하여 Ceph Object Gateway 영역을 부트스트랩합니다.
옵션 1: 명령줄 인터페이스를 사용합니다.
구문
ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]
ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.
[ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 옵션 2: yaml 사양 파일을 사용합니다.
root 사용자로 yaml 파일을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML 파일을 컨테이너의 디렉터리에 마운트합니다.
예제
cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yaml
[root@host01 ~]# cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역을 부트스트랩합니다.
예제
[ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yaml
[ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고rgw모듈에서 사용하는 사양 파일은 오케스트레이터에서 사용하는 형식과 동일합니다. 따라서 SSL 인증서와 같은 고급 구성 기능을 포함하여 지원되는 모든 오케스트레이션 Ceph Object Gateway 매개변수를 제공할 수 있습니다.
사용 가능한 토큰을 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ceph Object Gateway 데몬이 배포되기 전에 위의 명령을 실행하면 엔드포인트가 없으므로 토큰이 없다는 메시지가 표시됩니다.
이러한 토큰을 사용하여 보조 영역을 생성하고 기존 영역에 결합합니다.
root 사용자로 yaml 파일을 생성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨테이너의 디렉터리에
zone-spec.yaml파일을 마운트합니다.예제
cephadm shell --mount zone-spec.yaml:/var/lib/ceph/radosgw/zone-spec.yaml
[root@host01 ~]# cephadm shell --mount zone-spec.yaml:/var/lib/ceph/radosgw/zone-spec.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 영역에서 rgw'module을 활성화합니다.
예제
[ceph: root@host01 /]# ceph mgr module enable rgw
[ceph: root@host01 /]# ceph mgr module enable rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 영역을 생성합니다.
예제
[ceph: root@host01 /]# ceph rgw zone create -i /var/lib/ceph/radosgw/zone-spec.yaml
[ceph: root@host01 /]# ceph rgw zone create -i /var/lib/ceph/radosgw/zone-spec.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Object Gateway 다중 사이트 배포를 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. 기본 설정 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway 구성의 기본 사항을 배우는 것이 중요합니다. 기본값과 Beast라는 포함된 웹 서버에 대해 알아볼 수 있습니다. Ceph Object Gateway 관련 문제 해결의 경우 Ceph Object Gateway에서 생성한 로깅 및 디버깅 출력을 조정할 수 있습니다. 또한 Ceph Object Gateway를 사용하여 스토리지 클러스터 액세스에 고가용성 프록시를 제공할 수 있습니다.
사전 요구 사항
- 실행 중이고 정상적인 Red Hat Ceph Storage 클러스터입니다.
- Ceph Object Gateway 소프트웨어 패키지 설치.
4.1. DNS에 와일드카드 추가 링크 복사링크가 클립보드에 복사되었습니다!
호스트 이름과 같은 와일드카드를 DNS 서버의 DNS 레코드에 추가할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 개체 게이트웨이가 설치되어 있어야 합니다.
- 관리 노드에 대한 루트 수준 액세스.
프로세스
S3 스타일 하위 도메인이 있는 Ceph를 사용하려면
ceph-radosgw데몬이 도메인 이름을 확인하는 데 사용하는 DNS 서버의 DNS 레코드에 와일드카드를 추가합니다.구문
bucket-name.domain-name.com
bucket-name.domain-name.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow dnsmasq의 경우 앞에 호스트 이름 앞에 점(.)을 추가하여 다음 주소 설정을 추가합니다.구문
address=/.HOSTNAME_OR_FQDN/HOST_IP_ADDRESS
address=/.HOSTNAME_OR_FQDN/HOST_IP_ADDRESSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
address=/.gateway-host01/192.168.122.75
address=/.gateway-host01/192.168.122.75Copy to Clipboard Copied! Toggle word wrap Toggle overflow bind의 경우 DNS 레코드에 와일드카드를 추가합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS 서버를 다시 시작하고 하위 도메인이 있는 서버를 ping하여
ceph-radosgw데몬이 하위 도메인 요청을 처리할 수 있는지 확인합니다.구문
ping mybucket.HOSTNAME
ping mybucket.HOSTNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ping mybucket.gateway-host01
[root@host01 ~]# ping mybucket.gateway-host01Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
DNS 서버가 로컬 시스템에 있는 경우 로컬 시스템의 nameserver 항목을 추가하여
/etc/resolv.conf를 수정해야 할 수 있습니다. Ceph Object Gateway 영역 그룹에 호스트 이름을 추가합니다.
영역 그룹을 가져옵니다.
구문
radosgw-admin zonegroup get --rgw-zonegroup=ZONEGROUP_NAME > zonegroup.json
radosgw-admin zonegroup get --rgw-zonegroup=ZONEGROUP_NAME > zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup.json
[ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow JSON 파일을 백업합니다.
예제
[ceph: root@host01 /]# cp zonegroup.json zonegroup.backup.json
[ceph: root@host01 /]# cp zonegroup.json zonegroup.backup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup.json파일을 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup.json파일을 새 호스트 이름으로 업데이트합니다.예제
"hostnames": ["host01", "host02","host03"],
"hostnames": ["host01", "host02","host03"],Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway에서 영역 그룹을 다시 설정합니다.
구문
radosgw-admin zonegroup set --rgw-zonegroup=ZONEGROUP_NAME --infile=zonegroup.json
radosgw-admin zonegroup set --rgw-zonegroup=ZONEGROUP_NAME --infile=zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup.json
[ceph: root@host01 /]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow - DNS 설정이 적용되도록 Ceph Object Gateway를 다시 시작합니다.
4.2. Beast 프런트 엔드 웹 서버 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 C/C 내장 프런트 엔드 웹 서버인 Beast를 제공합니다. alal은 'Boost.Beast' C 라이브러리를 사용하여 HTTP를 구문 분석하고 비동기 네트워크 I/O를 위해 Boost.Asio 를 사용합니다.
4.3. al 구성 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음 Beast 구성 옵션은 RADOS 게이트웨이의 Ceph 구성 파일에 포함된 웹 서버에 전달할 수 있습니다. 각 옵션에는 기본값이 있습니다. 값을 지정하지 않으면 기본값은 비어 있습니다.
| 옵션 | 설명 | Default |
|---|---|---|
|
|
주소가 점으로 된 10진수 형식의 IPv4 주소 문자열 또는 대괄호로 묶은 16진수 표기법의 IPv6 주소 형식으로 수신 주소를 설정합니다. | 빈 |
|
| SSL 사용 엔드포인트에 사용되는 SSL 인증서 파일의 경로입니다. | 빈 |
|
|
SSL 사용 엔드포인트에 사용되는 개인 키 파일의 선택적 경로입니다. | 빈 |
|
| 일부 환경에서의 성능 최적화. | 빈 |
SSL을 사용하는 Beast 옵션이 있는 /etc/ceph/ceph.conf 파일의 예:
... [client.rgw.node1] rgw frontends = beast ssl_endpoint=192.168.0.100:443 ssl_certificate=<path to SSL certificate>
...
[client.rgw.node1]
rgw frontends = beast ssl_endpoint=192.168.0.100:443 ssl_certificate=<path to SSL certificate>
기본적으로 Beast 프런트 엔드는 서버에서 처리하는 모든 요청을 RADOS 게이트웨이 로그 파일에 기록하는 액세스 로그 행을 작성합니다.
추가 리소스
- 자세한 내용은 Beast 프런트 엔드 사용을 참조하십시오.
4.4. Beast에 대한 SSL 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenSSL 라이브러리를 사용하여 TLS(Transport Layer Security)를 제공하도록 Beast 프런트 엔드 웹 서버를 구성할 수 있습니다. Beast와 함께 SSL(Secure Socket Layer)을 사용하려면 Ceph Object Gateway 노드의 호스트 이름과 일치하는 CA(인증 기관)에서 인증서를 가져와야 합니다. 또한al에는 시크릿 키, 서버 인증서 및 단일 .pem 파일에 있는 다른 CA도 필요합니다.
시크릿 키 해시가 포함되어 있으므로 .pem 파일에 대한 무단 액세스를 방지합니다.
Red Hat은 SAN(Subject Alternative Name) 필드를 사용하여 CA에서 인증서를 가져올 것을 권장하고 S3-style 하위 도메인에 사용할 와일드카드를 사용하는 것이 좋습니다.
Red Hat Ceph Storage 7.0 스토리지 시스템의 경우 Red Hat은 소규모에서 중간 규모 테스트 환경을 위해 Beast 프런트 엔드 웹 서버가 있는 SSL만 사용하는 것이 좋습니다. 프로덕션 환경의 경우 HAProxy 및 keepalived 를 사용하여 HAProxy에서 SSL 연결을 종료해야 합니다.
Ceph Object Gateway가 클라이언트에서 작동하고 사용자 지정 인증서가 서버에서 사용되는 경우 노드에서 해당 인증서를 가져온 다음 Ceph Object Gateway 사양 파일에서 extra_container_args 매개변수를 사용하여 etc/pki 디렉터리를 컨테이너에 매핑할 수 있습니다.
사전 요구 사항
- 실행 중이고 정상적인 Red Hat Ceph Storage 클러스터입니다.
- Ceph Object Gateway 소프트웨어 패키지 설치.
- OpenSSL 소프트웨어 패키지를 설치합니다.
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
프로세스
현재 디렉터리에
rgw.yml이라는 새 파일을 생성합니다.예제
[ceph: root@host01 /]# touch rgw.yml
[ceph: root@host01 /]# touch rgw.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 편집을 위해
rgw.yml파일을 열고 환경에 맞게 사용자 지정합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 사양 파일을 사용하여 Ceph Object Gateway를 배포합니다.
예제
[ceph: root@host01 /]# ceph orch apply -i rgw.yml
[ceph: root@host01 /]# ceph orch apply -i rgw.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. D3N 데이터 캐시 링크 복사링크가 클립보드에 복사되었습니다!
datacenter-Data-Delivery Network(D3N)는 NVMe 와 같은 고속 스토리지를 사용하여 액세스 측의 데이터 집합을 캐시합니다. 이러한 캐싱을 사용하면 빅 데이터 작업에서 엣지의 각 Rados Gateway 노드에서 사용할 수 있는 컴퓨팅 및 빠른 저장소 리소스를 사용할 수 있습니다. Rados 게이트웨이는 백엔드 오브젝트 저장소(OSD)의 캐시 서버 역할을 하며 재사용을 위해 로컬로 데이터를 저장합니다.
Rados 게이트웨이를 다시 시작할 때마다 캐시 디렉터리의 콘텐츠가 제거됩니다.
4.5.1. D3N 캐시 디렉토리 추가 링크 복사링크가 클립보드에 복사되었습니다!
RGW에서 D3N 캐시를 활성화하려면 podman unit.run 에 D3N 캐시 디렉토리도 포함해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 개체 게이트웨이가 설치되어 있어야 합니다.
- 관리 노드에 대한 루트 수준 액세스.
- 각 RGW 노드에 있는 빠른 NVMe 드라이브로 로컬 캐시 스토리지 역할을 합니다.
프로세스
NVMe 드라이브의 마운트 지점을 생성합니다.
구문
mkfs.ext4 nvme-drive-path
mkfs.ext4 nvme-drive-pathCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# mkfs.ext4 /dev/nvme0n1 mount /dev/nvme0n1 /mnt/nvme0n1/
[ceph: root@host01 /]# mkfs.ext4 /dev/nvme0n1 mount /dev/nvme0n1 /mnt/nvme0n1/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시 디렉터리 경로를 만듭니다.
구문
mkdir <nvme-mount-path>/cache-directory-name
mkdir <nvme-mount-path>/cache-directory-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# mkdir /mnt/nvme0n1/rgw_datacache
[ceph: root@host01 /]# mkdir /mnt/nvme0n1/rgw_datacacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow nvme-mount-path및rgw_d3n_l1_datacache_persistent_path에 +rwx 권한을 제공합니다.구문
chmod a+rwx nvme-mount-path ; chmod a+rwx rgw_d3n_l1_datacache_persistent_path
chmod a+rwx nvme-mount-path ; chmod a+rwx rgw_d3n_l1_datacache_persistent_pathCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# chmod a+rwx /mnt/nvme0n1 ; chmod a+rwx /mnt/nvme0n1/rgw_datacache/
[ceph: root@host01 /]# chmod a+rwx /mnt/nvme0n1 ; chmod a+rwx /mnt/nvme0n1/rgw_datacache/Copy to Clipboard Copied! Toggle word wrap Toggle overflow extra_container_args를 사용하여 RGW 사양 파일을 생성/수정하여rgw_d3n_l1_datacache_persistent_path를podman unit.run에 추가합니다.구문
"extra_container_args: "-v" "rgw_d3n_l1_datacache_persistent_path:rgw_d3n_l1_datacache_persistent_path" ""extra_container_args: "-v" "rgw_d3n_l1_datacache_persistent_path:rgw_d3n_l1_datacache_persistent_path" "Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고단일 호스트에 RGW 인스턴스가 여러 개인 경우 각 인스턴스에 대해 별도의
rgw_d3n_l1_datacache_persistent_path를 생성해야 하며extra_container_args에 각 경로를 추가해야 합니다.예:
각 호스트의 RGW 두 개의 인스턴스에 대해
rgw_d3n_l1_data cache_persistent_path:만듭니다./mnt/nvme0n1/rgw_datacache/rgw1및/mnt/nvme0n1/rgw_datacache/rgw2아래에 두 개의 별도의 캐시 디렉토리를rgw 사양 파일의 "extra_container_args"를 예로 들 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rgw-spec.yml의 예::
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RGW 서비스를 재배포합니다.
예제
[ceph: root@host01 /]# ceph orch apply -i rgw-spec.yml
[ceph: root@host01 /]# ceph orch apply -i rgw-spec.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.2. rados 게이트웨이에서 D3N 구성 링크 복사링크가 클립보드에 복사되었습니다!
기존 RGW에 D3N 데이터 캐시를 구성하여 Red Hat Ceph Storage 클러스터에서 실행되는 빅 데이터 작업의 성능을 향상시킬 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 개체 게이트웨이가 설치되어 있어야 합니다.
- 관리 노드에 대한 루트 수준 액세스.
- 캐시 스토리지 역할을 하는 빠른 NVMe입니다.
필요한 D3N 관련 구성 추가
기존 RGW에서 D3N을 활성화하려면 각 Rados 게이트웨이 클라이언트에 대해 다음 구성을 설정해야 합니다.
구문
ceph config set <client.rgw> <CONF-OPTION> <VALUE>
# ceph config set <client.rgw> <CONF-OPTION> <VALUE>
-
rgw_d3n_l1_local_datacache_enabled=true rgw_d3n_l1_datacache_persistent_path= 캐시 디렉터리의경로예제
rgw_d3n_l1_datacache_persistent_path=/mnt/nvme/rgw_datacache/
rgw_d3n_l1_datacache_persistent_path=/mnt/nvme/rgw_datacache/Copy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_d3n_l1_datacache_size=max_size_of_cache_in_bytes예제
rgw_d3n_l1_datacache_size=10737418240
rgw_d3n_l1_datacache_size=10737418240Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차 예
테스트 오브젝트를 생성합니다.
참고테스트 오브젝트는 캐시하려면 4MB보다 커야 합니다.
예제
[ceph: root@host01 /]# fallocate -l 1G ./1G.dat [ceph: root@host01 /]# s3cmd mb s3://bkt [ceph: root@host01 /]# s3cmd put ./1G.dat s3://bkt
[ceph: root@host01 /]# fallocate -l 1G ./1G.dat [ceph: root@host01 /]# s3cmd mb s3://bkt [ceph: root@host01 /]# s3cmd put ./1G.dat s3://bktCopy to Clipboard Copied! Toggle word wrap Toggle overflow GET오브젝트를 수행합니다.예제
[ceph: root@host01 /]# s3cmd get s3://bkt/1G.dat /dev/shm/1G_get.dat download: 's3://bkt/1G.dat' -> './1G_get.dat' [1 of 1] 1073741824 of 1073741824 100% in 13s 73.94 MB/s done
[ceph: root@host01 /]# s3cmd get s3://bkt/1G.dat /dev/shm/1G_get.dat download: 's3://bkt/1G.dat' -> './1G_get.dat' [1 of 1] 1073741824 of 1073741824 100% in 13s 73.94 MB/s doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시 생성을 확인합니다. 캐시는 구성된
rgw_d3n_l1_datacache_persistent_path내에 오브젝트키-이름으로구성된 이름으로 생성됩니다.예제
[ceph: root@host01 /]# ls -lh /mnt/nvme/rgw_datacache rw-rr. 1 ceph ceph 1.0M Jun 2 06:18 cc7f967c-0021-43b2-9fdf-23858e868663.615391.1_shadow.ZCiCtMWeu_19wb100JIEZ-o4tv2IyA_1
[ceph: root@host01 /]# ls -lh /mnt/nvme/rgw_datacache rw-rr. 1 ceph ceph 1.0M Jun 2 06:18 cc7f967c-0021-43b2-9fdf-23858e868663.615391.1_shadow.ZCiCtMWeu_19wb100JIEZ-o4tv2IyA_1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트에 대한 캐시가 생성되면 해당 오브젝트에 대한 다음
GET작업에서 캐시에서 액세스하면 더 빠르게 액세스할 수 있습니다.예제
[ceph: root@host01 /]# s3cmd get s3://bkt/1G.dat /dev/shm/1G_get.dat download: 's3://bkt/1G.dat' -> './1G_get.dat' [1 of 1] 1073741824 of 1073741824 100% in 6s 155.07 MB/s done
[ceph: root@host01 /]# s3cmd get s3://bkt/1G.dat /dev/shm/1G_get.dat download: 's3://bkt/1G.dat' -> './1G_get.dat' [1 of 1] 1073741824 of 1073741824 100% in 6s 155.07 MB/s doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 예제에서는 캐시 가속을 설명하기 위해 RAM 드라이브(
/dev/shm)에 씁니다.
4.6. 로깅 및 디버깅 출력 조정 링크 복사링크가 클립보드에 복사되었습니다!
설정 절차를 완료하면 로깅 출력을 확인하여 요구 사항을 충족하는지 확인합니다. 기본적으로 Ceph 데몬은 journald 에 기록되며 journalctl 명령을 사용하여 로그를 볼 수 있습니다. 또는 /var/log/ceph/CEPH_CLUSTER_ID/ 디렉터리에 있는 Ceph 데몬을 파일에 기록할 수도 있습니다.
상세 로깅은 시간당 1GB 이상의 데이터를 생성할 수 있습니다. 이러한 유형의 로깅은 운영 체제의 디스크가 잠재적으로 채워지고 운영 체제가 작동하지 않을 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
프로세스
Ceph Object Gateway 로깅 출력을 늘리려면 다음 매개변수를 설정합니다.
구문
ceph config set client.rgw debug_rgw VALUE
ceph config set client.rgw debug_rgw VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw debug_rgw 20
[ceph: root@host01 /]# ceph config set client.rgw debug_rgw 20Copy to Clipboard Copied! Toggle word wrap Toggle overflow 런타임 시 이러한 설정을 수정할 수도 있습니다.
구문
ceph --admin-daemon /var/run/ceph/ceph-client.rgw.NAME.asok config set debug_rgw VALUE
ceph --admin-daemon /var/run/ceph/ceph-client.rgw.NAME.asok config set debug_rgw VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph --admin-daemon /var/run/ceph/ceph-client.rgw.rgw.asok config set debug_rgw 20
[ceph: root@host01 /]# ceph --admin-daemon /var/run/ceph/ceph-client.rgw.rgw.asok config set debug_rgw 20Copy to Clipboard Copied! Toggle word wrap Toggle overflow
필요한 경우 출력을 파일에 기록하도록 Ceph 데몬을 구성할 수 있습니다.
log_to_file,mon_cluster_log_to_file옵션을true로 설정합니다.예제
[ceph: root@host01 /]# ceph config set global log_to_file true [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_file true
[ceph: root@host01 /]# ceph config set global log_to_file true [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_file trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. 정적 웹 호스팅 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway를 구성하여 S3 버킷에서 정적 웹 사이트를 호스팅할 수 있습니다. 기존 웹 사이트 호스팅에는 각 웹 사이트에 대한 웹 서버를 구성해야 하며, 콘텐츠가 동적으로 변경되지 않을 때 리소스를 비효율적으로 사용할 수 있습니다. 예를 들어 PHP, 서블릿, 데이터베이스, nodejs 등과 같은 서버 측 서비스를 사용하지 않는 사이트를 예로 들 수 있습니다. 이 접근 방식은 각 사이트에 대해 웹 서버를 사용하는 가상 머신을 설정하는 것보다 훨씬 경제적입니다.
사전 요구 사항
- 정상적이고 실행 중인 Red Hat Ceph Storage 클러스터입니다.
4.7.1. 정적 웹 호스팅 가정 링크 복사링크가 클립보드에 복사되었습니다!
정적 웹 호스팅에는 Red Hat Ceph Storage 클러스터를 실행하는 하나 이상의 Ceph Object Gateway 인스턴스와 정적 웹 사이트에 대해 두 개 이상의 Ceph Object Gateway 인스턴스가 필요합니다. Red Hat은 각 영역에 HA(고가용성) 프록시 및 keepalived 와 같은 로드 밸런서를 사용하는 여러 게이트웨이 인스턴스가 있다고 가정합니다.
Red Hat 은 표준 S3/Swift API와 정적 웹 호스팅을 동시에 배포하기 위해 Ceph Object Gateway 인스턴스 사용을 지원하지 않습니다.
4.7.2. 정적 웹 호스팅 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
정적 웹 호스팅 기능은 자체 API를 사용하므로 S3 버킷에서 정적 웹 사이트를 사용하도록 게이트웨이를 구성하려면 다음이 필요합니다.
- S3 정적 웹 호스팅은 표준 S3/Swift API 사용 사례에 사용되는 인스턴스와 별도의 Ceph Object Gateway 인스턴스를 사용합니다.
- S3 정적 웹 사이트를 호스팅하는 게이트웨이 인스턴스에는 표준 S3/Swift API 게이트웨이 인스턴스에서 별도의 겹치지 않는 도메인 이름이 있어야 합니다.
- S3 정적 웹 사이트를 호스팅하는 게이트웨이 인스턴스는 표준 S3/Swift API 게이트웨이 인스턴스와 별도의 공용 IP 주소를 사용해야 합니다.
- S3 정적 웹 사이트 로드 밸런싱을 호스팅하는 게이트웨이 인스턴스 및 필요한 경우 HAProxy/keepalived를 사용하여 SSL을 종료합니다.
4.7.3. 정적 웹 호스팅 게이트웨이 설정 링크 복사링크가 클립보드에 복사되었습니다!
정적 웹 호스팅에 대해 Ceph Object Gateway를 활성화하려면 다음 옵션을 설정합니다.
구문
ceph config set client.rgw OPTION VALUE
ceph config set client.rgw OPTION VALUE
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_enable_static_website true [ceph: root@host01 /]# ceph config set client.rgw rgw_enable_apis s3,s3website [ceph: root@host01 /]# ceph config set client.rgw rgw_dns_name objects-zonegroup.example.com [ceph: root@host01 /]# ceph config set client.rgw rgw_dns_s3website_name objects-website-zonegroup.example.com [ceph: root@host01 /]# ceph config set client.rgw rgw_resolve_cname true
[ceph: root@host01 /]# ceph config set client.rgw rgw_enable_static_website true
[ceph: root@host01 /]# ceph config set client.rgw rgw_enable_apis s3,s3website
[ceph: root@host01 /]# ceph config set client.rgw rgw_dns_name objects-zonegroup.example.com
[ceph: root@host01 /]# ceph config set client.rgw rgw_dns_s3website_name objects-website-zonegroup.example.com
[ceph: root@host01 /]# ceph config set client.rgw rgw_resolve_cname true
rgw_enable_static_website 설정은 true 여야 합니다. rgw_enable_apis 설정은 s3website API를 활성화해야 합니다. rgw_dns_name 및 rgw_dns_s3website_name 설정은 정규화된 도메인을 제공해야 합니다. 사이트에서 정식 이름 확장을 사용하는 경우 rgw_resolve_cname 옵션을 true 로 설정합니다.
rgw_dns_name 및 rgw_dns_s3website_name 의 FQDN은 겹치 지 않아야 합니다.
4.7.4. 정적 웹 호스팅 DNS 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음은 가정된 DNS 설정의 예입니다. 처음 두 행은 표준 S3 인터페이스를 사용하여 게이트웨이 인스턴스의 도메인을 지정하고 IPv4 및 IPv6 주소를 가리킵니다. 세 번째 줄은 표준 이름 확장을 사용하여 S3 버킷에 대한 와일드카드 CNAME 설정을 제공합니다. 네 번째 줄과 다섯 번째 줄은 S3 웹 사이트 인터페이스를 사용하여 게이트웨이 인스턴스의 도메인을 지정하고 해당 IPv4 및 IPv6 주소를 가리킵니다.
objects-zonegroup.domain.com. IN A 192.0.2.10 objects-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:10 *.objects-zonegroup.domain.com. IN CNAME objects-zonegroup.domain.com. objects-website-zonegroup.domain.com. IN A 192.0.2.20 objects-website-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:20
objects-zonegroup.domain.com. IN A 192.0.2.10
objects-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:10
*.objects-zonegroup.domain.com. IN CNAME objects-zonegroup.domain.com.
objects-website-zonegroup.domain.com. IN A 192.0.2.20
objects-website-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:20
처음 두 줄의 IP 주소는 네 번째와 다섯 번째 줄의 IP 주소와 다릅니다.
다중 사이트 구성에서 Ceph Object Gateway를 사용하는 경우 라우팅 솔루션을 사용하여 트래픽을 클라이언트에 가장 가까운 게이트웨이로 라우팅하는 것이 좋습니다.
AWS(Amazon Web Service)에는 호스트 이름과 일치하도록 정적 웹 호스트 버킷이 필요합니다. Ceph는 DNS를 구성하는 몇 가지 방법을 제공하며 프록시에 일치하는 인증서가 있는 경우 HTTPS가 작동합니다.
하위 도메인의 버킷에 호스트 이름
AWS 스타일 S3 하위 도메인을 사용하려면 DNS 항목에서 요청을 모든 버킷으로 리디렉션할 수 있는 와일드카드를 사용합니다. DNS 항목은 다음과 같을 수 있습니다.
*.objects-website-zonegroup.domain.com. IN CNAME objects-website-zonegroup.domain.com.
*.objects-website-zonegroup.domain.com. IN CNAME objects-website-zonegroup.domain.com.
버킷 이름이 bucket1 인 버킷 이름에 액세스합니다.
http://bucket1.objects-website-zonegroup.domain.com
http://bucket1.objects-website-zonegroup.domain.com
버킷이 일치하지 않는 호스트 이름
Ceph는 요청에 버킷 이름을 포함하지 않고 Ceph Object Gateway에 고유한 도메인 이름을 버킷에 매핑하는 기능을 지원합니다. 도메인 이름을 사용하여 버킷에 액세스하려면 도메인 이름을 버킷 이름에 매핑합니다. DNS 항목은 다음과 같을 수 있습니다.
www.example.com. IN CNAME bucket2.objects-website-zonegroup.domain.com.
www.example.com. IN CNAME bucket2.objects-website-zonegroup.domain.com.
여기서 버킷 이름은 bucket2 입니다.
다음과 같은 방식으로 버킷에 액세스합니다.
http://www.example.com
http://www.example.com
CNAME을 사용하여 호스트 이름으로 긴 버킷
AWS는 일반적으로 도메인 이름과 일치하도록 버킷 이름이 필요합니다. CNAME을 사용하여 정적 웹 호스팅에 대한 DNS를 구성하려면 DNS 항목은 다음과 같을 수 있습니다.
www.example.com. IN CNAME www.example.com.objects-website-zonegroup.domain.com.
www.example.com. IN CNAME www.example.com.objects-website-zonegroup.domain.com.
다음과 같은 방식으로 버킷에 액세스합니다.
http://www.example.com
http://www.example.com
CNAME 없이 호스트 이름으로 긴 버킷
DNS 이름에 SOA,NS,MX 또는 TXT 와 같은 다른 비 CNAME 레코드가 포함된 경우 DNS 레코드는 도메인 이름을 IP 주소에 직접 매핑해야 합니다. 예를 들면 다음과 같습니다.
www.example.com. IN A 192.0.2.20 www.example.com. IN AAAA 2001:DB8::192:0:2:20
www.example.com. IN A 192.0.2.20
www.example.com. IN AAAA 2001:DB8::192:0:2:20
다음과 같은 방식으로 버킷에 액세스합니다.
http://www.example.com
http://www.example.com
4.7.5. 정적 웹 호스팅 사이트 생성 링크 복사링크가 클립보드에 복사되었습니다!
정적 웹 사이트를 만들려면 다음 단계를 수행합니다.
S3 버킷을 생성합니다. 버킷 이름 MIGHT은 웹 사이트의 도메인 이름과 동일합니다. 예를 들어
mysite.com의 버킷 이름이mysite.com일 수 있습니다. 이는 AWS에 필요하지만 Ceph에는 필요하지 않습니다.- 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 정적 웹 호스팅 DNS 구성 섹션을 참조하십시오.
-
정적 웹 사이트 콘텐츠를 버킷에 업로드합니다. 콘텐츠에는 HTML, CSS, 클라이언트 측 JavaScript, 이미지, 오디오/비디오 콘텐츠 및 기타 다운로드 가능한 파일이 포함될 수 있습니다. 웹 사이트에는
index.html파일이 있어야 하며error.html파일이 있을 수 있습니다. - 웹사이트의 내용을 확인합니다. 이 시점에서 버킷의 작성자만 콘텐츠에 액세스할 수 있습니다.
- 공개적으로 읽을 수 있도록 파일에 대한 권한을 설정합니다.
4.8. Ceph Object Gateway의 고가용성 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway의 많은 인스턴스를 단일 영역에 할당할 수 있습니다. 이를 통해 부하, 즉 동일한 영역 그룹 및 영역이 증가함에 따라 확장할 수 있지만 고가용성 프록시를 사용하기 위해 페더레이션 아키텍처가 필요하지 않습니다. 각 Ceph Object Gateway 데몬에는 자체 IP 주소가 있으므로 ingress 서비스를 사용하여 여러 Ceph Object Gateway 데몬 또는 노드에서 부하를 분산할 수 있습니다. 수신 서비스는 Ceph Object Gateway 환경의 HAProxy 및 keepalived 데몬을 관리합니다. HAProxy 서버에서 HTTPS 트래픽을 종료하고 Ceph Object Gateway의 HAProxy 서버와 Beast 프런트 엔드 웹 서버 인스턴스 간에 HTTP를 사용할 수도 있습니다.
사전 요구 사항
- 다른 호스트에서 실행 중인 두 개 이상의 Ceph Object Gateway 데몬.
-
다른 호스트에서 실행되는
수신서비스의 두 개 이상의 인스턴스 용량.
4.8.1. 고가용성 서비스 링크 복사링크가 클립보드에 복사되었습니다!
수신 서비스는 Ceph Object Gateway에 고가용성 엔드포인트를 제공합니다. 수신 서비스는 필요에 따라 원하는 수의 호스트에 배포할 수 있습니다. Red Hat은 각 서버가 수신 서비스로 구성된 Red Hat Enterprise Linux 서버를 두 개 이상 지원하는 것이 좋습니다. 최소 구성 옵션 세트로 HA(고가용성) 서비스를 실행할 수 있습니다. Ceph 오케스트레이터는 유동 가상 IP 주소로 로드 밸런싱을 제공하여 haproxy 및 keepalived 데몬을 관리하는 수신 서비스를 배포합니다. 활성 haproxy 는 모든 Ceph Object Gateway 요청을 사용 가능한 모든 Ceph Object Gateway 데몬에 배포합니다.
가상 IP 주소는 기본 호스트라고 하는 수신 호스트 중 하나에 자동으로 구성됩니다. Ceph 오케스트레이터는 동일한 서브넷의 일부로 구성된 기존 IP 주소를 기반으로 첫 번째 네트워크 인터페이스를 선택합니다. 가상 IP 주소가 동일한 서브넷에 속하지 않는 경우 기존 IP 주소와 일치하도록 Ceph 오케스트레이터의 서브넷 목록을 정의할 수 있습니다. keepalived 데몬과 활성 haproxy 가 기본 호스트에 응답하지 않으면 가상 IP 주소가 백업 호스트로 이동합니다. 이 백업 호스트가 새 기본 호스트가 됩니다.
현재 구성된 IP 주소가 없는 네트워크 인터페이스에서 가상 IP 주소를 구성할 수 없습니다.
SSL(보안 소켓 계층)을 사용하려면 Ceph Object Gateway가 아닌 Ingress 서비스에서 SSL을 종료해야 합니다.
4.8.2. Ceph Object Gateway의 고가용성 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway에 대한 HA(고가용성)를 구성하려면 YAML 구성 파일을 작성하고 Ceph 오케스트레이터는 인그레스 서비스의 설치, configuraton 및 관리를 수행합니다. 수신 서비스는 haproxy 및 keepalived 데몬을 사용하여 Ceph Object Gateway의 고가용성을 제공합니다.
사전 요구 사항
-
수신서비스를 설치하기 위해 Red Hat Enterprise Linux 9 이상을 실행하는 최소 두 개의 호스트. - 정상 실행 Red Hat Ceph Storage 클러스터.
- 다른 호스트에서 실행되는 최소 두 개의 Ceph Object Gateway 데몬입니다.
-
Ingress서비스를 실행하는 호스트에 대한 루트 수준 액세스. - 방화벽을 사용하는 경우 HTTP 및 HTTPS 트래픽의 경우 포트 443에 대해 포트 80을 엽니다.
프로세스
새
ingress.yaml파일을 생성합니다.예제
[root@host01 ~] touch ingress.yaml
[root@host01 ~] touch ingress.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 편집할
ingress.yaml파일을 엽니다. 다음 옵션을 추가하고 환경에 적용할 수 있는 값을 추가합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cephadm 쉘을 시작합니다.
예제
cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/ingress.yaml
[root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/ingress.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 최신
haproxy및keepalived이미지를 구성합니다.구문
ceph config set mgr mgr/cephadm/container_image_haproxy HAPROXY_IMAGE_ID ceph config set mgr mgr/cephadm/container_image_keepalived KEEPALIVED_IMAGE_ID
ceph config set mgr mgr/cephadm/container_image_haproxy HAPROXY_IMAGE_ID ceph config set mgr mgr/cephadm/container_image_keepalived KEEPALIVED_IMAGE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_haproxy registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest [ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_keepalived registry.redhat.io/rhceph/keepalived-rhel9:latest
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_haproxy registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest [ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_keepalived registry.redhat.io/rhceph/keepalived-rhel9:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 오케스트레이터를 사용하여 새
수신서비스를 설치하고 구성합니다.[ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/ingress.yaml
[ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/ingress.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 오케스트레이터가 완료되면 HA 구성을 확인합니다.
수신서비스를 실행하는 호스트에서 가상 IP 주소가 표시되는지 확인합니다.예제
ip addr show
[root@host01 ~]# ip addr showCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 클라이언트에서 Ceph Object Gateway에 연결을 시도합니다.
구문
wget HOST_NAME
wget HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
wget host01.example.com
[root@client ~]# wget host01.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 아래 예제에서와 유사한 콘텐츠가 있는
index.html이 반환되면 Ceph Object Gateway의 HA 구성이 제대로 작동합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5장. 다중 사이트 구성 및 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 다양한 사용 사례에 맞게 여러 Ceph Object Gateway를 구성하고 관리할 수 있습니다. 재해 복구 및 페일오버 이벤트 중에 수행할 작업을 확인할 수 있습니다. 또한 다중 사이트 Ceph Object Gateway 환경에서 영역, 영역 및 동기화 정책에 대해 자세히 알아볼 수 있습니다.
단일 영역 구성은 일반적으로 인스턴스 간에 게이트웨이 클라이언트 요청을 로드 밸런싱할 수 있는 하나 이상의 ceph-radosgw 인스턴스를 포함하는 하나의 영역 그룹으로 구성됩니다. 단일 영역 구성에서 일반적으로 여러 게이트웨이 인스턴스는 단일 Ceph 스토리지 클러스터를 가리킵니다. 그러나 Red Hat은 Ceph Object Gateway에 대한 여러 다중 사이트 구성 옵션을 지원합니다.
-
다중 영역: 고급 구성은 하나의 영역 그룹과 여러 영역으로 구성되며, 각 영역은 하나 이상의
ceph-radosgw인스턴스가 있습니다. 각 영역은 자체 Ceph Storage 클러스터에서 지원합니다. 영역 그룹의 여러 영역을 사용하면 영역 그룹 중 하나에 상당한 오류가 발생할 경우 영역 그룹에 대한 재해 복구를 제공합니다. 각 영역은 활성화되어 있으며 쓰기 작업을 수신할 수 있습니다. 재해 복구 외에도 여러 활성 영역이 콘텐츠 전달 네트워크의 기반 역할을 할 수도 있습니다. - multi-zone-group: Ceph Object Gateway는 하나 이상의 영역이 있는 각 영역 그룹인 여러 영역 그룹도 지원할 수 있습니다. 동일한 영역 내의 영역 그룹에 저장된 오브젝트는 글로벌 네임스페이스를 공유하므로 영역 그룹과 영역에서 고유한 오브젝트 ID를 확인할 수 있습니다.
- 다중 Cryostat: Ceph Object Gateway는 단일 영역 그룹 또는 여러 영역 그룹일 수 있는 영역의 개념을 지원하며 영역에 대해 전역적으로 고유한 네임스페이스를 지원합니다. 여러 영역은 다양한 구성 및 네임스페이스를 지원하는 기능을 제공합니다.
사전 요구 사항
- 정상 실행 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 배포.
5.1. 요구 사항 및 사용량 링크 복사링크가 클립보드에 복사되었습니다!
다중 사이트 구성에는 Ceph 스토리지 클러스터마다 두 개 이상의 Ceph 스토리지 클러스터와 최소 두 개의 Ceph 개체 게이트웨이 인스턴스가 필요합니다.
이 가이드에서는 지리적으로 별도의 위치에 있는 두 개 이상의 Ceph 스토리지 클러스터를 가정하지만, 구성은 동일한 물리적 사이트에서 작동할 수 있습니다. 이 가이드에서는 각각 rgw1,rgw2,rgw3 및 rgw4 라는 4 개의 Ceph 개체 게이트웨이 서버를 가정합니다.
다중 사이트 구성에는 마스터 영역 그룹과 마스터 영역이 필요합니다. 또한 각 영역 그룹에는 마스터 영역이 필요합니다. 영역 그룹에는 하나 이상의 보조 또는 마스터 영역이 있을 수 있습니다.
다중 사이트에 대한 네트워크 고려 사항을 계획할 때 다중 사이트 동기화 네트워크에서 관찰되는 관계 대역폭과 대기 시간을 이해하고 클라이언트는 보조 사이트와 관련된 현재 동기화 상태와 직접 상관관계를 수집하는 것이 중요합니다. Red Hat Ceph Storage 다중 사이트 클러스터 간의 네트워크 링크에서 보조 사이트의 효율적인 복구 시간을 유지하기 위해 기본 클러스터의 ingest를 처리할 수 있어야 합니다. 다중 사이트 동기화는 비동기적이고 제한 사항 중 하나는 동기화 게이트웨이가 링크 전체에서 데이터를 처리할 수 있는 속도입니다. 네트워크 상호 연결 속도 측면에서 보는 예는 클라이언트 게이트웨이마다 8TB 또는 누적 수신 데이터에 대해 1GbE 또는 데이터 센터 간 연결일 수 있습니다. 따라서 다른 두 개의 사이트로 복제하고 하루에 16TB를 수집하는 경우 다중 사이트 복제를 위해 6GbE의 전용 대역폭이 필요합니다.
또한 Red Hat은 인터넷을 통한 VPN이 발생한 추가 오버헤드로 인해 적합하지 않으므로 프라이빗 이더넷 또는 Dense파장 분류 다중화(DWDM)를 권장합니다.
영역의 마스터 영역 그룹 내의 마스터 영역은 사용자, 할당량 및 버킷( radosgw-admin CLI로 생성된)을 포함하여 영역 메타데이터의 마스터 사본을 저장합니다. 이 메타데이터는 보조 영역 및 보조 영역 그룹과 자동으로 동기화됩니다. radosgw-admin CLI로 실행된 메타데이터 작업은 마스터 영역 그룹의 마스터 영역 내의 호스트에서 실행해야 보조 영역 그룹 및 영역에 동기화되도록 해야 합니다. 현재 보조 영역 및 영역 그룹에서 메타데이터 작업을 실행할 수 있지만 동기화 되지 않아 조각화된 메타데이터로 이어지는 것은 권장되지 않습니다.
다중 사이트에 새 Ceph Object Gateway 배포의 경우 메타데이터 작업을 보조 사이트에 동기화하는 데 약 20분이 걸립니다.
다음 예제에서 rgw1 호스트는 마스터 영역 그룹의 마스터 영역 역할을 합니다. rgw2 호스트는 마스터 영역 그룹의 보조 영역 역할을 합니다. rgw3 호스트는 보조 영역 그룹의 마스터 영역 역할을 하며, rgw4 호스트는 보조 영역 그룹의 보조 영역 역할을 합니다.
Red Hat은 로드 밸런서와 3개의 Ceph Object Gateway 데몬을 사용하여 엔드 포인트를 다중 사이트와 동기화하는 것이 좋습니다. 로드 밸런서를 통해 클라이언트 I/O 작업 전용인 다중 사이트 구성에서 Ceph Object Gateway 노드가 동기화되지 않은 경우 ceph config set client.rgw.CLIENT_NODE rgw_run_sync_thread false 명령을 실행하여 Ceph Object Gateway를 다시 시작합니다.
다음은 게이트웨이를 동기화하기 위한 HAProxy의 일반적인 구성 파일입니다.
예제
5.2. 풀 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 radosgw 데몬이 생성할 풀에 적절한 배치 그룹 수를 계산하기 위해 Ceph 배치 그룹의 풀 계산기 를 사용하는 것이 좋습니다. Ceph 구성 데이터베이스에서 계산된 값을 기본값으로 설정합니다.
예제
[ceph: root@host01 /]# ceph config set osd osd_pool_default_pg_num 50 [ceph: root@host01 /]# ceph config set osd osd_pool_default_pgp_num 50
[ceph: root@host01 /]# ceph config set osd osd_pool_default_pg_num 50
[ceph: root@host01 /]# ceph config set osd osd_pool_default_pgp_num 50
Ceph Object Gateway 인스턴스가 풀을 생성할 때 Ceph 구성을 변경하면 기본값을 사용합니다. 또는 수동으로 풀을 만들 수도 있습니다.
영역별 풀 이름은 이름 지정 규칙 ZONE_NAME.POOL_NAME 을 따릅니다. 예를 들어 us-east 라는 영역에는 다음과 같은 풀이 있습니다.
-
.rgw.root -
us-east.rgw.control -
us-east.rgw.meta -
us-east.rgw.log -
us-east.rgw.buckets.index -
us-east.rgw.buckets.data -
us-east.rgw.buckets.non-ec -
us-east.rgw.meta:users.keys -
us-east.rgw.meta:users.email -
us-east.rgw.meta:users.swift -
us-east.rgw.meta:users.uid
5.3. 단일 사이트 시스템을 다중 사이트로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
기본 영역 그룹 및 영역이 있는 단일 사이트 시스템에서 다중 사이트 시스템으로 마이그레이션하려면 다음 단계를 따르십시오.
영역을 생성합니다.
realM_NAME을 영역 이름으로 바꿉니다.구문
radosgw-admin realm create --rgw-realm REALM_NAME --default
radosgw-admin realm create --rgw-realm REALM_NAME --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 영역 및 영역 그룹의 이름을 변경합니다.
NEW_ZONE_GROUP_NAME및NEW_ZONE_NAME을 각각 zonegroup 및 zone 이름으로 바꿉니다.구문
radosgw-admin zonegroup rename --rgw-zonegroup default --zonegroup-new-name NEW_ZONE_GROUP_NAME radosgw-admin zone rename --rgw-zone default --zone-new-name NEW_ZONE_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAME
radosgw-admin zonegroup rename --rgw-zonegroup default --zonegroup-new-name NEW_ZONE_GROUP_NAME radosgw-admin zone rename --rgw-zone default --zone-new-name NEW_ZONE_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 zonegroup의
api_name의 이름을 변경합니다.NEW_ZONE_GROUP_NAME을 zonegroup 이름으로 바꿉니다. zonegroup 맵의api_name필드는 다양한 영역의 데이터 복제에 사용되는 RADOS API의 이름을 나타냅니다. 이 필드를 사용하면 클라이언트가 올바른 API와 상호 작용하여 Ceph 스토리지 클러스터 내의 데이터에 액세스하고 관리할 수 있습니다.구문
radosgw-admin zonegroup modify --api-name NEW_ZONE_GROUP_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAME
radosgw-admin zonegroup modify --api-name NEW_ZONE_GROUP_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 zonegroup을 구성합니다.
NEW_ZONE_GROUP_NAME을 zonegroup 이름으로 바꾸고realM_NAME을 영역 이름으로 바꿉니다.ENDPOINT를 zonegroup에서 정규화된 도메인 이름으로 교체합니다.구문
radosgw-admin zonegroup modify --rgw-realm REALM_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAME --endpoints http://ENDPOINT --master --default
radosgw-admin zonegroup modify --rgw-realm REALM_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAME --endpoints http://ENDPOINT --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 영역을 구성합니다.
realM_NAME을 영역 이름으로,NEW_ZONE_GROUP_NAME을 zonegroup 이름으로,NEW_ZONE_NAME을 영역 이름으로,ENDPOINT를 영역 그룹에서 정규화된 도메인 이름으로 바꿉니다.구문
radosgw-admin zone modify --rgw-realm REALM_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAME --rgw-zone NEW_ZONE_NAME --endpoints http://ENDPOINT --master --default
radosgw-admin zone modify --rgw-realm REALM_NAME --rgw-zonegroup NEW_ZONE_GROUP_NAME --rgw-zone NEW_ZONE_NAME --endpoints http://ENDPOINT --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템 사용자를 생성합니다.
USER_ID를 사용자 이름으로 바꿉니다.DISPLAY_NAME을 표시 이름으로 교체합니다. 공백을 포함할 수 있습니다.구문
radosgw-admin user create --uid USER_ID --display-name DISPLAY_NAME --access-key ACCESS_KEY --secret SECRET_KEY --system
radosgw-admin user create --uid USER_ID --display-name DISPLAY_NAME --access-key ACCESS_KEY --secret SECRET_KEY --systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 구성을 커밋합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow rgw 서비스 이름에 대한 grep
구문
ceph orch ls | grep rgw
ceph orch ls | grep rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow realm, zonegroup 및 기본 영역에 대한 구성을 설정합니다.
구문
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone PRIMARY_ZONE_NAME
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone PRIMARY_ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-1
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 다시 시작합니다.
예제
[ceph: root@host01 /]# systemctl restart ceph-radosgw@rgw.`hostname -s`
[ceph: root@host01 /]# systemctl restart ceph-radosgw@rgw.`hostname -s`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구문
[ceph: root@host01 /]# ceph orch restart _RGW_SERVICE_NAME_
[ceph: root@host01 /]# ceph orch restart _RGW_SERVICE_NAME_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw.rgwsvcid.mons-1.jwgwwp
[ceph: root@host01 /]# ceph orch restart rgw.rgwsvcid.mons-1.jwgwwpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다중 사이트에서 단일(기본 영역) 사이트로의 복원은 지원되지 않습니다.
5.4. 보조 영역 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹 내의 영역은 모든 데이터를 복제하여 각 영역에 동일한 데이터가 있는지 확인합니다. 보조 영역을 생성할 때 보조 영역을 제공하도록 식별된 호스트에서 모든 radosgw-admin 영역 작업을 실행합니다.
추가 영역을 추가하려면 보조 영역을 추가하는 것과 동일한 절차를 따릅니다. 다른 영역 이름을 사용합니다.
-
마스터 영역 그룹의 마스터 영역에 있는 호스트에서 사용자 생성 및 할당량과 같은 메타데이터 작업을 실행합니다. 마스터 영역과 보조 영역은 RESTful API에서 버킷 작업을 수신할 수 있지만 보조 영역은 버킷 작업을 마스터 영역으로 리디렉션합니다. 마스터 영역이 다운되면 버킷 작업이 실패합니다.
radosgw-adminCLI를 사용하여 버킷을 생성하는 경우 버킷이 다른 영역 그룹 및 영역과 동기화되도록 마스터 영역 그룹의 마스터 영역 내의 호스트에서 버킷을 실행해야 합니다. -
--yes-i-really-mean-it을 사용하여 보조 영역에 사용자를 생성하는 경우에도 특정 사용자에 대한 버킷 생성은 지원되지 않습니다.
사전 요구 사항
- 두 개 이상의 실행 중인 Red Hat Ceph Storage 클러스터
- 각 Red Hat Ceph Storage 클러스터에 하나씩 두 개 이상의 Ceph Object Gateway 인스턴스.
- 모든 노드에 대한 루트 수준 액세스.
- 노드 또는 컨테이너가 스토리지 클러스터에 추가됩니다.
- 모든 Ceph Manager, Monitor 및 OSD 데몬이 배포됩니다.
프로세스
cephadm쉘에 로그인합니다.예제
cephadm shell
[root@host04 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에서 기본 영역 구성을 가져옵니다.
구문
radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin realm pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
[ceph: root@host04 /]# radosgw-admin realm pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에서 기본 기간 구성을 가져옵니다.
구문
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 영역을 구성합니다.
참고모든 영역은 기본적으로 활성-활성 구성으로 실행됩니다. 즉, 게이트웨이 클라이언트는 모든 영역에 데이터를 쓸 수 있으며 영역은 영역 그룹 내의 다른 모든 영역에 데이터를 복제합니다. 보조 영역이 쓰기 작업을 수락하지 않아야 하는 경우
'--read-only플래그를 지정하여 마스터 영역과 보조 영역 간에 활성-수동 구성을 만듭니다. 또한 마스터 영역 그룹의 마스터 영역에 저장된 생성된 시스템 사용자의access_key및secret_key를 제공합니다.구문
radosgw-admin zone create --rgw-zonegroup=_ZONE_GROUP_NAME_ \ --rgw-zone=_SECONDARY_ZONE_NAME_ --endpoints=http://_RGW_SECONDARY_HOSTNAME_:_RGW_PRIMARY_PORT_NUMBER_1_ \ --access-key=_SYSTEM_ACCESS_KEY_ --secret=_SYSTEM_SECRET_KEY_ \ [--read-only]radosgw-admin zone create --rgw-zonegroup=_ZONE_GROUP_NAME_ \ --rgw-zone=_SECONDARY_ZONE_NAME_ --endpoints=http://_RGW_SECONDARY_HOSTNAME_:_RGW_PRIMARY_PORT_NUMBER_1_ \ --access-key=_SYSTEM_ACCESS_KEY_ --secret=_SYSTEM_SECRET_KEY_ \ [--read-only]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본 영역을 삭제합니다.
중요데이터를 저장하기 위해 기본 영역 및 영역 그룹을 사용하는 경우 기본 영역 및 해당 풀을 삭제하지 마십시오.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone SECONDARY_ZONE_NAME
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone SECONDARY_ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-2
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin period update --commit
[ceph: root@host04 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm쉘 외부에서 스토리지 클러스터 및 프로세스의 FSID를 가져옵니다.예제
systemctl list-units | grep ceph
[root@host04 ~]# systemctl list-units | grep cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 데몬을 시작합니다.
구문
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service
[root@host04 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service [root@host04 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. 아카이브 영역 구성 링크 복사링크가 클립보드에 복사되었습니다!
영역을 아카이브로 구성하기 전에 영역이 있는지 확인합니다. 영역이 없으면 기본 영역/zonegroups의 아카이브 영역을 통해 데이터를 저장할 수 없습니다.
Red Hat Ceph Storage 7.0의 오브젝트 스토리지 아카이브 영역은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 Red Hat은 해당 기능을 프로덕션용으로 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Object Storage 아카이브 영역 기능을 사용하여 Red Hat Ceph Storage에 상주하는 아카이브 오브젝트 데이터.
아카이브 영역은 Ceph Object Gateway의 다중 사이트 복제 및 S3 오브젝트 버전 관리 기능을 사용합니다. 아카이브 영역은 production 파일에서 삭제된 경우에도 사용 가능한 모든 오브젝트의 모든 버전을 유지합니다.
아카이브 영역에는 아카이브 영역과 연결된 게이트웨이를 통해서만 제거할 수 있는 S3 오브젝트 버전의 기록이 있습니다. 모든 데이터 업데이트 및 메타데이터를 캡처하여 S3 오브젝트 버전으로 통합합니다.
아카이브 영역에 대한 버킷 세분화된 복제는 아카이브 영역을 생성한 후 사용할 수 있습니다.
버킷 라이프사이클 정책을 통해 아카이브 영역의 스토리지 공간 사용량을 제어할 수 있습니다. 여기서 오브젝트에서 유지하려는 버전 수를 정의할 수 있습니다.
아카이브 영역은 논리 또는 물리적 오류로부터 데이터를 보호하는 데 도움이 됩니다. 프로덕션 영역에서 버킷을 실수로 삭제하는 등 논리적 오류에서 사용자를 저장할 수 있습니다. 또한 완전한 프로덕션 사이트 장애와 같이 대규모 하드웨어 오류에서 데이터를 저장할 수 있습니다. 또한, 이 복사본은 immutable copy를 제공하는데 도움이 될 수 있으며, 이 복사본은 Cryostat 보호 전략을 구축하는 데 도움이 될 수 있습니다.
버킷 세분화된 복제를 구현하려면 동기화 정책 명령을 사용하여 정책을 활성화 및 비활성화합니다. 자세한 내용은 동기화 정책 그룹 생성 및 동기화 정책 그룹 수정 을 참조하십시오.
동기화 정책 그룹 프로시저를 사용하는 것은 선택 사항이며 버킷 세분화된 복제에서 활성화 및 비활성화만 사용해야 합니다. 버킷 세분화된 복제 없이 아카이브 영역을 사용하려면 동기화 정책 절차를 사용할 필요가 없습니다.
단일 사이트에서 스토리지 클러스터를 마이그레이션하려면 단일 사이트 시스템을 다중 사이트로 마이그레이션 을 참조하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 노드에 대한 루트 수준 액세스.
- Ceph Object Gateway 소프트웨어 설치.
프로세스
새 영역을 생성하는 동안
아카이브계층을 사용하여 아카이브 영역을 구성합니다.구문
radosgw-admin zone create --rgw-zonegroup={ZONE_GROUP_NAME} --rgw-zone={ZONE_NAME} --endpoints={http://FQDN:PORT},{http://FQDN:PORT} --tier-type=archive$ radosgw-admin zone create --rgw-zonegroup={ZONE_GROUP_NAME} --rgw-zone={ZONE_NAME} --endpoints={http://FQDN:PORT},{http://FQDN:PORT} --tier-type=archiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east --endpoints={http://example.com:8080} --tier-type=archive[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east --endpoints={http://example.com:8080} --tier-type=archiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 아카이브 영역에서는 기본 영역에서만 동기화하고 기간 업데이트 커밋을 수행하도록 아카이브 영역을 수정합니다.
구문
radosgw-admin zone modify --rgw-zone archive --sync_from primary --sync_from_all false --sync-from-rm secondary radosgw-admin period update --commit
$ radosgw-admin zone modify --rgw-zone archive --sync_from primary --sync_from_all false --sync-from-rm secondary $ radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
아카이브 영역의 omap olh 항목을 고려하여 max_objs_per_shard 를 50K로 줄이는 것이 좋습니다. 이렇게 하면 큰 omap 경고를 방지하기 위해 버킷 인덱스 shard 오브젝트당 omap 항목 수를 확인하는 데 도움이 됩니다.
예를 들면 다음과 같습니다.
ceph config set client.rgw rgw_max_objs_per_shard 50000
$ ceph config set client.rgw rgw_max_objs_per_shard 50000
5.5.1. 아카이브 영역에서 오브젝트 삭제 링크 복사링크가 클립보드에 복사되었습니다!
S3 라이프사이클 정책 확장을 사용하여 < ArchiveZone > 요소 내의 오브젝트를 삭제할 수 있습니다.
아카이브 영역 오브젝트는 expiration 라이프사이클 정책 규칙을 사용하여만 삭제할 수 있습니다.
-
<
;Rule> 섹션에 <ArchiveZone> 요소가 포함된 경우 해당 규칙은 아카이브 영역에서 실행되며 아카이브 영역에서 실행되는 유일한 규칙입니다. -
<
ArchiveZone>으로 표시된 규칙은 아카이브가 아닌 영역에서 실행되지 않습니다.
라이프사이클 정책 내의 규칙에 따라 삭제할 오브젝트와 시기가 결정됩니다. 라이프사이클 생성 및 관리에 대한 자세한 내용은 Bucket 라이프사이클을 참조하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 노드에 대한 루트 수준 액세스.
- Ceph Object Gateway 소프트웨어 설치.
프로세스
<
ArchiveZone>라이프사이클 정책 규칙을 설정합니다. 라이프사이클 정책 생성에 대한 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 라이프사이클 관리 정책 생성 섹션을 참조하십시오.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 특정 라이프사이클 정책에 아카이브 영역 규칙이 포함되어 있는지 확인합니다.
구문
radosgw-admin lc get --bucket BUCKET_NAME
radosgw-admin lc get --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 사용자가 삭제되면 해당 사용자가 소유한 아카이브 사이트의 버킷에 액세스할 수 없습니다. 해당 버킷을 다른 Ceph Object Gateway 사용자에게 연결하여 데이터에 액세스합니다.
구문
radosgw-admin bucket link --uid NEW_USER_ID --bucket BUCKET_NAME --yes-i-really-mean-it
radosgw-admin bucket link --uid NEW_USER_ID --bucket BUCKET_NAME --yes-i-really-mean-itCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket link --uid arcuser1 --bucket arc1-deleted-da473fbbaded232dc5d1e434675c1068 --yes-i-really-mean-it
[ceph: root@host01 /]# radosgw-admin bucket link --uid arcuser1 --bucket arc1-deleted-da473fbbaded232dc5d1e434675c1068 --yes-i-really-mean-itCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2. 페일오버 및 재해 복구 링크 복사링크가 클립보드에 복사되었습니다!
다양한 페일오버 및 재해 시나리오에서 데이터를 복구합니다. 요구 사항에 따라 다음 절차를 사용하십시오.
- 재해 복구를 위해 보조 영역에 장애 조치(failover)가 있는 기본 영역 실패
- 진행 중인 I/O를 사용하여 아카이브 영역 동기화를 기본 영역에서 보조 영역으로 전환
- 아카이브 영역 동기화는 기본 영역 실패와 기본 영역 장애와 함께 기본 영역에서만 동기화됩니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 노드에 대한 루트 수준 액세스.
- Ceph Object Gateway 소프트웨어 설치.
5.5.2.1. 재해 복구를 위해 보조 영역에 장애 조치(failover)가 있는 기본 영역 실패 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
보조 영역을 기본 및 기본 영역으로 설정합니다. 예를 들면 다음과 같습니다.
구문
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 Ceph Object Gateway는 활성-활성 구성으로 실행됩니다. 클러스터가 활성-패시브 구성에서 실행되도록 구성된 경우 보조 영역은 읽기 전용 영역입니다. 영역이 쓰기 작업을 수신할 수 있도록
--read-only상태를 제거합니다. 예를 들면 다음과 같습니다.구문
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default --read-only=false
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default --read-only=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 기본 영역이 복구되면 작업을 되돌립니다.
복구된 영역에서 현재 기본 영역에서 영역을 가져옵니다.
구문
radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY \ --access-key=ACCESS_KEY --secret=SECRET_KEYradosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY \ --access-key=ACCESS_KEY --secret=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 복구 영역을 기본 및 기본 영역으로 설정합니다.
구문
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 복구된 영역에서 Ceph Object Gateway를 다시 시작합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 영역이 읽기 전용 구성이어야 하는 경우 보조 영역을 업데이트합니다.
구문
radosgw-admin zone modify --rgw-zone=ZONE_NAME --read-only radosgw-admin zone modify --rgw-zone=ZONE_NAME --read-only
radosgw-admin zone modify --rgw-zone=ZONE_NAME --read-only radosgw-admin zone modify --rgw-zone=ZONE_NAME --read-onlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 영역에서 Ceph Object Gateway를 다시 시작합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2.2. I/O를 사용하여 기본에서 보조로 아카이브 영역 동기화 전환 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
동기화 소스를 보조 영역으로 전환합니다.
구문
radosgw-admin zone modify --rgw-zone archive --sync_from secondary --sync_from_all false --sync-from-rm primary radosgw-admin period update --commit
radosgw-admin zone modify --rgw-zone archive --sync_from secondary --sync_from_all false --sync-from-rm primary radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 아카이브 영역에서 동기화 상태 및 데이터 일관성을 확인합니다.
동기화 소스를 다시 기본 영역으로 전환합니다.
구문
radosgw-admin zone modify --rgw-zone archive --sync_from primary --sync_from_all false --sync-from-rm secondary radosgw-admin period update --commit
radosgw-admin zone modify --rgw-zone archive --sync_from primary --sync_from_all false --sync-from-rm secondary radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 전환 후 아카이브 영역에서 동기화 상태 및 데이터 일관성을 확인합니다. 결과는 다음과 같습니다.
- 아카이브 영역은 첫 번째 수정 후 보조 영역에서 동기화되기 시작합니다.
- 데이터 일관성은 전환 전체에서 유지됩니다.
- 기본 영역으로 다시 전환하면 아카이브 영역이 데이터 손실 또는 손상 없이 기본 영역에서 동기화됩니다.
- 동기화는 모든 영역에서 일관되게 유지됩니다.
5.5.2.3. 아카이브 영역은 기본 영역 실패가 있는 기본 영역에서만 동기화 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
- 아카이브 영역이 기본 영역에서만 동기화되도록 설정되어 있는지 확인합니다.
- 기본 영역 게이트웨이를 중지하여 기본 영역 실패를 시뮬레이션합니다.
- 보조 영역에 대한 장애 조치(failover)를 수행하고 기간 업데이트 커밋을 수행합니다.
- 아카이브 영역의 동기화 상태를 확인합니다.
- 약 30분 정도의 시간 간격을 게시하고 기본 영역 게이트웨이를 다시 시작합니다.
아카이브 영역이 기본 영역의 동기화를 다시 시작하는지 확인합니다. 결과는 다음과 같습니다.
- 아카이브 영역은 기본 영역이 실패할 때 동기화를 중지합니다.
- 기본 영역을 복원하면 아카이브 영역이 기본 영역의 동기화를 자동으로 다시 시작합니다.
- 데이터 무결성 및 동기화 상태는 프로세스 전체에서 유지됩니다.
5.6. 동일한 스토리지 클러스터에서 여러 영역 구성 링크 복사링크가 클립보드에 복사되었습니다!
동일한 스토리지 클러스터에서 여러 영역을 구성할 수 있습니다. 이는 다중 사이트의 고급 사용 사례입니다. 동일한 스토리지 클러스터에 여러 영역을 구성하면 로컬 영역을 사용하여 로컬 Ceph Object Gateway 클라이언트 트래픽뿐만 아니라 보조 사이트에 복제될 데이터를 위한 복제 영역을 처리할 수 있습니다.
Red Hat은 각 영역에 고유한 Ceph Object Gateway를 사용하는 것이 좋습니다.
사전 요구 사항
- 스토리지 클러스터에서 두 개의 Red Hat Ceph Storage 데이터 센터가 실행 중입니다.
- 스토리지 클러스터의 각 데이터 센터의 액세스 키 및 시크릿 키입니다.
- 모든 Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- 각 데이터 센터에는 자체 로컬 영역이 있습니다. 두 사이트에서 복제하는 영역을 공유합니다.
프로세스
스토리지 클러스터의 첫 번째 데이터 센터에 하나의 로컬 영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REALM_NAME --default
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=ldc1 --default
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=ldc1 --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 데이터 센터에 하나의 로컬 마스터 영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_NODE_NAME:80 --rgw-realm=REALM_NAME --master --default
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_NODE_NAME:80 --rgw-realm=REALM_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=ldc1zg --endpoints=http://rgw1:80 --rgw-realm=ldc1 --master --default
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=ldc1zg --endpoints=http://rgw1:80 --rgw-realm=ldc1 --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 데이터 센터에서 하나의 로컬 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=HTTP_FQDN[,HTTP_FQDN]
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=HTTP_FQDN[,HTTP_FQDN]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=ldc1zg --rgw-zone=ldc1z --master --default --endpoints=http://rgw.example.com
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=ldc1zg --rgw-zone=ldc1z --master --default --endpoints=http://rgw.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 커밋합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 적절한 영역 및 영역을 사용하여 Ceph Object Gateway 데몬을 배포하거나 구성 데이터베이스를 업데이트할 수 있습니다.
배치 사양을 사용하여 Ceph Object Gateway를 배포합니다.
구문
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=ldc1 --zone=ldc1z --placement="1 host01"
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=ldc1 --zone=ldc1z --placement="1 host01"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm ldc1 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup ldc1zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone ldc1z
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm ldc1 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup ldc1zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone ldc1zCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
스토리지 클러스터의 두 번째 데이터 센터에 하나의 로컬 영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REALM_NAME --default
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin realm create --rgw-realm=ldc2 --default
[ceph: root@host04 /]# radosgw-admin realm create --rgw-realm=ldc2 --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 두 번째 데이터 센터에 하나의 로컬 마스터 영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_NODE_NAME:80 --rgw-realm=REALM_NAME --master --default
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_NODE_NAME:80 --rgw-realm=REALM_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin zonegroup create --rgw-zonegroup=ldc2zg --endpoints=http://rgw2:80 --rgw-realm=ldc2 --master --default
[ceph: root@host04 /]# radosgw-admin zonegroup create --rgw-zonegroup=ldc2zg --endpoints=http://rgw2:80 --rgw-realm=ldc2 --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 두 번째 데이터 센터에서 하나의 로컬 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=HTTP_FQDN[, HTTP_FQDN]
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=HTTP_FQDN[, HTTP_FQDN]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=ldc2zg --rgw-zone=ldc2z --master --default --endpoints=http://rgw.example.com
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=ldc2zg --rgw-zone=ldc2z --master --default --endpoints=http://rgw.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 커밋합니다.
예제
[ceph: root@host04 /]# radosgw-admin period update --commit
[ceph: root@host04 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 적절한 영역 및 영역을 사용하여 Ceph Object Gateway 데몬을 배포하거나 구성 데이터베이스를 업데이트할 수 있습니다.
배치 사양을 사용하여 Ceph Object Gateway를 배포합니다.
구문
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=ldc2 --zone=ldc2z --placement="1 host01"
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=ldc2 --zone=ldc2z --placement="1 host01"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm ldc2 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup ldc2zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone ldc2z
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm ldc2 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup ldc2zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone ldc2zCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host04 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph orch restart rgw
[ceph: root@host04 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
스토리지 클러스터의 첫 번째 데이터 센터에 복제 영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REPLICATED_REALM_1 --default
radosgw-admin realm create --rgw-realm=REPLICATED_REALM_1 --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=rdc1 --default
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=rdc1 --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow --default플래그를 사용하여 기본 사이트에서 복제된 영역을 기본값으로 설정합니다.첫 번째 데이터 센터의 마스터 영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=RGW_ZONE_GROUP --endpoints=http://_RGW_NODE_NAME:80 --rgw-realm=_RGW_REALM_NAME --master --default
radosgw-admin zonegroup create --rgw-zonegroup=RGW_ZONE_GROUP --endpoints=http://_RGW_NODE_NAME:80 --rgw-realm=_RGW_REALM_NAME --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=rdc1zg --endpoints=http://rgw1:80 --rgw-realm=rdc1 --master --default
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=rdc1zg --endpoints=http://rgw1:80 --rgw-realm=rdc1 --master --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 데이터 센터에 마스터 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=RGW_ZONE_GROUP --rgw-zone=_MASTER_RGW_NODE_NAME --master --default --endpoints=HTTP_FQDN[,HTTP_FQDN]
radosgw-admin zone create --rgw-zonegroup=RGW_ZONE_GROUP --rgw-zone=_MASTER_RGW_NODE_NAME --master --default --endpoints=HTTP_FQDN[,HTTP_FQDN]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=rdc1zg --rgw-zone=rdc1z --master --default --endpoints=http://rgw.example.com
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=rdc1zg --rgw-zone=rdc1z --master --default --endpoints=http://rgw.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 동기화 사용자를 생성하고 다중 사이트의 마스터 영역에 시스템 사용자를 추가합니다.
구문
radosgw-admin user create --uid="SYNCHRONIZATION_USER" --display-name="Synchronization User" --system radosgw-admin zone modify --rgw-zone=RGW_ZONE --access-key=ACCESS_KEY --secret=SECRET_KEY
radosgw-admin user create --uid="SYNCHRONIZATION_USER" --display-name="Synchronization User" --system radosgw-admin zone modify --rgw-zone=RGW_ZONE --access-key=ACCESS_KEY --secret=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin user create --uid="synchronization-user" --display-name="Synchronization User" --system [ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=rdc1zg --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
radosgw-admin user create --uid="synchronization-user" --display-name="Synchronization User" --system [ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=rdc1zg --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 커밋합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 적절한 영역 및 영역을 사용하여 Ceph Object Gateway 데몬을 배포하거나 구성 데이터베이스를 업데이트할 수 있습니다.
배치 사양을 사용하여 Ceph Object Gateway를 배포합니다.
구문
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=rdc1 --zone=rdc1z --placement="1 host01"
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=rdc1 --zone=rdc1z --placement="1 host01"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm rdc1 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup rdc1zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone rdc1z
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm rdc1 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup rdc1zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone rdc1zCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
두 번째 데이터 센터에서 복제 영역을 가져옵니다.
구문
radosgw-admin realm pull --url=https://tower-osd1.cephtips.com --access-key=ACCESS_KEY --secret-key=SECRET_KEY
radosgw-admin realm pull --url=https://tower-osd1.cephtips.com --access-key=ACCESS_KEY --secret-key=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm pull --url=https://tower-osd1.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
[ceph: root@host01 /]# radosgw-admin realm pull --url=https://tower-osd1.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 데이터 센터에서 기간을 가져옵니다.
구문
radosgw-admin period pull --url=https://tower-osd1.cephtips.com --access-key=ACCESS_KEY --secret-key=SECRET_KEY
radosgw-admin period pull --url=https://tower-osd1.cephtips.com --access-key=ACCESS_KEY --secret-key=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin period pull --url=https://tower-osd1.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
[ceph: root@host01 /]# radosgw-admin period pull --url=https://tower-osd1.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 번째 데이터 센터에 보조 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zone=RGW_ZONE --rgw-zonegroup=RGW_ZONE_GROUP --endpoints=https://tower-osd4.cephtips.com --access-key=_ACCESS_KEY --secret-key=SECRET_KEY
radosgw-admin zone create --rgw-zone=RGW_ZONE --rgw-zonegroup=RGW_ZONE_GROUP --endpoints=https://tower-osd4.cephtips.com --access-key=_ACCESS_KEY --secret-key=SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zone=rdc2z --rgw-zonegroup=rdc1zg --endpoints=https://tower-osd4.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zone=rdc2z --rgw-zonegroup=rdc1zg --endpoints=https://tower-osd4.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 커밋합니다.
예제
[ceph: root@host04 /]# radosgw-admin period update --commit
[ceph: root@host04 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 적절한 영역 및 영역을 사용하여 Ceph Object Gateway 데몬을 배포하거나 구성 데이터베이스를 업데이트할 수 있습니다.
배치 사양을 사용하여 Ceph Object Gateway를 배포합니다.
구문
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph orch apply rgw rgw --realm=rdc1 --zone=rdc2z --placement="1 host04"
[ceph: root@host04 /]# ceph orch apply rgw rgw --realm=rdc1 --zone=rdc2z --placement="1 host04"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm rdc1 [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup rdc1zg [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone rdc2z
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm rdc1 [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup rdc1zg [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone rdc2zCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host02 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# ceph orch restart rgw
[ceph: root@host04 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
두 번째 데이터 센터의 엔드포인트에
root로 로그인합니다. 마스터 영역에서 동기화 상태를 확인합니다.
구문
radosgw-admin sync status
radosgw-admin sync statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin sync status realm 59762f08-470c-46de-b2b1-d92c50986e67 (ldc2) zonegroup 7cf8daf8-d279-4d5c-b73e-c7fd2af65197 (ldc2zg) zone 034ae8d3-ae0c-4e35-8760-134782cb4196 (ldc2z) metadata sync no sync (zone is master)[ceph: root@host04 /]# radosgw-admin sync status realm 59762f08-470c-46de-b2b1-d92c50986e67 (ldc2) zonegroup 7cf8daf8-d279-4d5c-b73e-c7fd2af65197 (ldc2zg) zone 034ae8d3-ae0c-4e35-8760-134782cb4196 (ldc2z) metadata sync no sync (zone is master)Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
첫 번째 데이터 센터의 엔드포인트에
root로 로그인합니다. replication-synchronization 영역의 동기화 상태를 확인합니다.
구문
radosgw-admin sync status --rgw-realm RGW_REALM_NAME
radosgw-admin sync status --rgw-realm RGW_REALM_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로컬 사이트에 데이터를 저장하고 액세스하려면 로컬 영역에 대한 사용자를 생성합니다.
구문
radosgw-admin user create --uid="LOCAL_USER" --display-name="Local user" --rgw-realm=_REALM_NAME --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
radosgw-admin user create --uid="LOCAL_USER" --display-name="Local user" --rgw-realm=_REALM_NAME --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host04 /]# radosgw-admin user create --uid="local-user" --display-name="Local user" --rgw-realm=ldc1 --rgw-zonegroup=ldc1zg --rgw-zone=ldc1z
[ceph: root@host04 /]# radosgw-admin user create --uid="local-user" --display-name="Local user" --rgw-realm=ldc1 --rgw-zonegroup=ldc1zg --rgw-zone=ldc1zCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요기본적으로 사용자는 기본 영역에 생성됩니다. 사용자가 로컬 영역의 데이터에 액세스하려면
radosgw-admin명령에--rgw-realm인수가 필요합니다.
5.7. 다중 사이트 동기화 정책 사용 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 버킷 수준에서 다중 사이트 동기화 정책을 사용하여 다른 영역의 버킷 간 데이터 이동을 제어할 수 있습니다. 이러한 정책을 버킷 세분화 동기화 정책이라고 합니다. 이전에는 영역 내의 모든 버킷이 대칭적으로 처리되었습니다. 즉, 각 영역에 지정된 버킷의 미러 사본이 포함되어 있으며 모든 영역에서 버킷 복사본이 동일했습니다. 동기화 프로세스에서는 버킷 동기화 소스 및 버킷 동기화 대상이 동일한 버킷을 참조한다고 가정합니다.
버킷 동기화 정책은 데이터에만 적용되며 버킷 동기화 정책의 존재와 관계없이 다중 사이트의 모든 영역에 메타데이터가 동기화됩니다. 버킷 동기화 정책이 허용 되거나 금지 될 때 생성, 수정 또는 삭제된 오브젝트는 정책이 적용되면 자동으로 동기화되지 않습니다. 버킷 동기화 실행 명령을 실행하여 이러한 오브젝트를 동기화합니다.
zonegroup 수준에서 여러 동기화 정책이 정의되어 있는 경우 언제든지 하나의 정책만 활성화될 수 있습니다. 필요한 경우 정책을 전환할 수 있습니다.
동기화 정책은 이전 영역 그룹 coarse 구성을 대체합니다(sync_from*). 동기화 정책은 영역 그룹 수준에서 구성할 수 있습니다. 구성된 경우 영역 그룹 수준에서 이전 스타일 구성을 대체하지만 버킷 수준에서 구성할 수도 있습니다.
버킷 동기화 정책은 아카이브 영역에 적용할 수 있습니다. 아카이브 영역에서의 이동은 양방향이 아니며 모든 오브젝트를 활성 영역에서 아카이브 영역으로 이동할 수 있습니다. 그러나 아카이브 영역은 읽기 전용이므로 아카이브 영역에서 활성 영역으로 오브젝트를 이동할 수 없습니다.
영역 그룹의 버킷 동기화 정책의 예
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
- Ceph Monitor 노드에 대한 루트 수준 액세스.
- Ceph Object Gateway 소프트웨어 설치.
5.7.1. 다중 사이트 동기화 정책 그룹 상태 링크 복사링크가 클립보드에 복사되었습니다!
동기화 정책에서는 데이터 흐름 구성 목록을 포함할 수 있는 여러 그룹과 파이프 구성 목록을 정의할 수 있습니다. data-flow는 다양한 영역 간 데이터 흐름을 정의합니다. 대칭 데이터 흐름은 여러 영역에서 서로 데이터를 동기화하는 대칭 데이터 흐름을 정의할 수 있으며 방향 데이터 흐름을 정의할 수 있으며 데이터가 한 영역에서 다른 영역으로 이동하는 방향성 데이터 흐름을 정의할 수 있습니다.
파이프는 이러한 데이터 흐름을 사용할 수 있는 실제 버킷과 소스 오브젝트 접두사와 같이 연결된 속성을 정의합니다.
동기화 정책 그룹은 다음 세 가지 상태가 될 수 있습니다.
-
활성화된Cryostat- Cryostatsync가 허용되고 활성화됩니다. -
허용되는Cryostat- Cryostatsync가 허용됩니다. -
이 그룹에서 정의한 대로 사용 안 함으로 사용 안 함으로 사용 안 함
영역이 복제되면 동기화 정책을 사용하여 특정 버킷의 복제를 비활성화할 수 있습니다. 다음은 정책 충돌을 해결하기 위해 따라야 하는 의미 체계입니다.
| zonegroup | bucket | 결과 |
|---|---|---|
| enabled | enabled | enabled |
| enabled | 허용됨 | enabled |
| enabled | forbidden | 비활성화됨 |
| 허용됨 | enabled | enabled |
| 허용됨 | 허용됨 | 비활성화됨 |
| 허용됨 | forbidden | 비활성화됨 |
| forbidden | enabled | 비활성화됨 |
| forbidden | 허용됨 | 비활성화됨 |
| forbidden | forbidden | 비활성화됨 |
모든 동기화 쌍(SOURCE_ZONE,SOURCE_BUCKET)(DESTINATION_ZONE,DESTINATION_BUCKET)에 반영되도록 설정된 여러 그룹 정책의 경우 다음 순서로 다음 규칙이 적용됩니다.
-
하나의 동기화 정책이
금지된경우에도 동기화가비활성화됩니다. -
동기화를 허용하려면 하나 이상의 정책을
활성화해야합니다.
이 그룹의 동기화 상태는 다른 그룹을 덮어쓸 수 있습니다.
정책은 버킷 수준에서 정의할 수 있습니다. 버킷 수준 동기화 정책은 zonegroup 정책의 데이터 흐름을 상속하고 zonegroup에서 허용하는 하위 집합만 정의할 수 있습니다.
정책의 와일드카드 영역 및 와일드카드 버킷 매개변수는 모든 관련 영역 또는 모든 관련 버킷을 정의합니다. 버킷 정책의 컨텍스트에서는 현재 버킷 인스턴스를 의미합니다. 전체 영역이 미러링된 재해 복구 구성에서는 버킷에 아무것도 구성할 필요가 없습니다. 그러나 세분화된 버킷 동기화의 경우 (예: 와일드카드를 사용하여) zonegroup 수준에서 해당 항목을 허용(예: 와일드카드를 사용하여) 허용(status=allowed)하여 파이프를 동기화하도록 구성하는 것이 좋습니다. 그러나 버킷 수준(status=enabled)에서만 특정 동기화를 활성화합니다. 필요한 경우 버킷 수준의 정책은 데이터 이동을 특정 관련 영역으로 제한할 수 있습니다.
zonegroup 정책에 대한 모든 변경 사항을 zonegroup 마스터 영역에 적용해야 하며 기간 업데이트 및 커밋이 필요합니다. 버킷 정책 변경 사항을 zonegroup 마스터 영역에 적용해야 합니다. Ceph Object Gateway는 이러한 변경 사항을 동적으로 처리합니다.
S3 버킷 복제 API
S3 버킷 복제 API가 구현되고 사용자가 다양한 버킷 간에 복제 규칙을 생성할 수 있습니다. AWS 복제 기능은 동일한 영역 내에서 버킷 복제를 허용하지만 Ceph Object Gateway에서는 현재 이를 허용하지 않습니다. 그러나 Ceph Object Gateway API에는 사용자가 특정 버킷을 동기화할 영역을 선택할 수 있는 Zone 배열도 추가되었습니다.
5.7.2. 현재 정책 검색 링크 복사링크가 클립보드에 복사되었습니다!
get 명령을 사용하여 현재 zonegroup 동기화 정책 또는 특정 버킷 정책을 검색할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
현재 zonegroup 동기화 정책 또는 버킷 정책을 검색합니다. 특정 버킷 정책을 검색하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync policy get --bucket=BUCKET_NAME
radosgw-admin sync policy get --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=mybucket
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.3. 동기화 정책 그룹 생성 링크 복사링크가 클립보드에 복사되었습니다!
현재 영역 그룹 또는 특정 버킷에 대한 동기화 정책 그룹을 생성할 수 있습니다.
버킷에 대한 동기화 정책을 생성할 때 금지 없이 변경된 동기화 정책 그룹에 대한 동기화 정책을 생성할 때 동기화 프로세스를 완료하려면 수동 업데이트가 필요할 수 있습니다.
예를 들어 정책이 금지 되면 버킷1 에 데이터가 기록되면 정책이 활성화된 상태로 변경된 후 데이터가 영역 간에 올바르게 동기화되지 않을 수 있습니다. 변경 사항을 올바르게 동기화하려면 동기화 정책에서 버킷 동기화 run 명령을 실행합니다. 이 단계는 정책이 금지 될 때 버킷을 재하드하는 경우에도 필요합니다. 이 경우 정책을 활성화한 후 버킷 동기화 실행 명령을 사용해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
- 아카이브 영역에 대해 생성할 때 동기화 정책 그룹 전에 아카이브 영역이 생성되었는지 확인합니다.
프로세스
동기화 정책 그룹 또는 버킷 정책을 생성합니다. 버킷 정책을 생성하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled | allowed | forbidden
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled | allowed | forbiddenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=mygroup1 --status=enabled
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=mygroup1 --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 버킷 세분화된 복제에 대한 동기화 프로세스를 수동으로 완료합니다.
참고이 단계는 정책이 기록된 데이터가 있거나 정책이
금지된경우 버킷 세분화된 복제와 함께 아카이브 영역의 일부로 를 사용할 때 사용해야 합니다.구문
radosgw-admin bucket sync run
radosgw-admin bucket sync runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket sync run
[ceph: root@host01 /]# radosgw-admin bucket sync runCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.4. 동기화 정책 그룹 수정 링크 복사링크가 클립보드에 복사되었습니다!
현재 영역 그룹 또는 특정 버킷의 기존 동기화 정책 그룹을 수정할 수 있습니다.
버킷에 대한 동기화 정책을 수정하는 경우 동기화 프로세스를 완료 하려면 수동 업데이트가 필요할 수 있습니다.
예를 들어 정책이 금지 되면 버킷1 에 데이터가 기록되면 정책이 활성화된 상태로 변경된 후 데이터가 영역 간에 올바르게 동기화되지 않을 수 있습니다. 변경 사항을 올바르게 동기화하려면 동기화 정책에서 버킷 동기화 run 명령을 실행합니다. 이 단계는 정책이 금지 될 때 버킷을 재하드하는 경우에도 필요합니다. 이 경우 정책을 활성화한 후 버킷 동기화 실행 명령을 사용해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
- 아카이브 영역을 수정할 때 동기화 정책 그룹 전에 아카이브 영역이 생성되었는지 확인합니다.
프로세스
동기화 정책 그룹 또는 버킷 정책을 수정합니다. 버킷 정책을 수정하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group modify --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled | allowed | forbidden
radosgw-admin sync group modify --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled | allowed | forbiddenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=mygroup1 --status=forbidden
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=mygroup1 --status=forbiddenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 버킷 세분화된 복제에 대한 동기화 프로세스를 수동으로 완료합니다.
참고이 단계는 정책이 기록된 데이터가 있거나 정책이
금지된경우 버킷 세분화된 복제와 함께 아카이브 영역의 일부로 를 사용할 때 사용해야 합니다.구문
radosgw-admin bucket sync run
radosgw-admin bucket sync runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket sync run
[ceph: root@host01 /]# radosgw-admin bucket sync runCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.5. 동기화 정책 그룹 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
group get 명령을 사용하여 현재 동기화 정책 그룹을 그룹 ID로 표시하거나 특정 버킷 정책을 표시할 수 있습니다.
--bucket 옵션이 제공되지 않으면 zonegroup 수준에서 생성된 그룹이 버킷 수준의 그룹이 검색되지 않습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
현재 동기화 정책 그룹 또는 버킷 정책을 표시합니다. 특정 버킷 정책을 표시하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group get --bucket=BUCKET_NAME --group-id=GROUP_ID
radosgw-admin sync group get --bucket=BUCKET_NAME --group-id=GROUP_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group get --group-id=mygroup
[ceph: root@host01 /]# radosgw-admin sync group get --group-id=mygroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.6. 동기화 정책 그룹 제거 링크 복사링크가 클립보드에 복사되었습니다!
group remove 명령을 사용하여 그룹 ID로 현재 동기화 정책 그룹을 제거하거나 특정 버킷 정책을 제거할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
현재 동기화 정책 그룹 또는 버킷 정책을 제거합니다. 특정 버킷 정책을 제거하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group remove --bucket=BUCKET_NAME --group-id=GROUP_ID
radosgw-admin sync group remove --bucket=BUCKET_NAME --group-id=GROUP_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group remove --group-id=mygroup
[ceph: root@host01 /]# radosgw-admin sync group remove --group-id=mygroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.7. 동기화 흐름 생성 링크 복사링크가 클립보드에 복사되었습니다!
동기화 정책 그룹 또는 특정 버킷에 대해 두 가지 다른 유형의 흐름을 생성할 수 있습니다.
- 직접 동기화 흐름
- 대칭 동기화 흐름
그룹 flow create 명령은 동기화 흐름을 생성합니다. 동기화 흐름이 이미 있는 동기화 정책 그룹 또는 버킷에 대한 그룹 flow create 명령을 실행한 경우 명령은 동기화 흐름에 대한 기존 설정을 덮어쓰고 지정한 설정을 적용합니다.
| 옵션 | 설명 | 필수/선택 사항 |
|---|---|---|
| --bucket | 동기화 정책을 구성해야 하는 버킷의 이름입니다. 버킷 수준 동기화 정책에서만 사용됩니다. | 선택 사항 |
| --group-id | 동기화 그룹의 ID입니다. | 필수 항목 |
| --flow-id | 흐름의 ID입니다. | 필수 항목 |
| --flow-type | 동기화 정책 그룹 또는 특정 버킷에 대한 흐름 유형 - 방향 또는 대칭입니다. | 필수 항목 |
| --source-zone | 동기화해야 하는 소스 영역을 지정하려면 다음을 수행합니다. 동기화 그룹에 데이터를 전송하는 영역입니다. 동기화 그룹의 흐름 유형이 방향성인 경우 필요합니다. | 선택 사항 |
| --dest-zone | 동기화해야 하는 대상 영역을 지정하려면 다음을 수행합니다. 동기화 그룹에서 데이터를 수신하는 영역입니다. 동기화 그룹의 흐름 유형이 방향성인 경우 필요합니다. | 선택 사항 |
| --zones | 동기화 그룹의 일부인 영역입니다. 영역 언급은 발신자 영역과 수신자 영역이 모두 됩니다. 영역을 ""로 구분하여 지정합니다. 동기화 그룹의 흐름 유형이 대칭인 경우 필요합니다. | 선택 사항 |
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
방향 동기화 흐름을 생성하거나 업데이트합니다. 특정 버킷에 대한 방향 동기화 흐름을 생성하거나 업데이트하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group flow create --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE --dest-zone=DESTINATION_ZONE
radosgw-admin sync group flow create --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE --dest-zone=DESTINATION_ZONECopy to Clipboard Copied! Toggle word wrap Toggle overflow 대칭 동기화 흐름을 만들거나 업데이트합니다. 대칭 흐름 유형에 대해 여러 영역을 지정하려면
--zones옵션에 쉼표로 구분된 목록을 사용합니다.구문
radosgw-admin sync group flow create --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME1,ZONE_NAME2
radosgw-admin sync group flow create --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME1,ZONE_NAME2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 영역은흐름에 추가해야 하는 모든 영역의 쉼표로 구분된 목록입니다.
5.7.8. 동기화 흐름 및 영역 제거 링크 복사링크가 클립보드에 복사되었습니다!
group flow remove 명령은 동기화 정책 그룹 또는 버킷에서 동기화 흐름 또는 영역을 제거합니다.
방향 흐름을 사용하는 동기화 정책 그룹 또는 버킷의 경우 그룹 흐름 제거 명령은 흐름을 제거합니다. 대칭 흐름을 사용하는 동기화 정책 그룹 또는 버킷의 경우 group flow remove 명령을 사용하여 지정된 영역을 흐름에서 제거하거나 흐름을 제거할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
방향 동기화 흐름을 제거합니다. 특정 버킷의 방향 동기화 흐름을 제거하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE --dest-zone=DESTINATION_ZONE
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE --dest-zone=DESTINATION_ZONECopy to Clipboard Copied! Toggle word wrap Toggle overflow 대칭 동기화 흐름에서 특정 영역을 제거합니다. 대칭 흐름에서 여러 영역을 제거하려면
--zones옵션에 쉼표로 구분된 목록을 사용합니다.구문
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME1,ZONE_NAME2
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME1,ZONE_NAME2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 대칭 동기화 흐름을 제거합니다. zonegroup 수준에서 동기화 흐름을 제거하려면
--bucket옵션을 제거합니다.구문
radosgw-admin sync group flow remove --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME1,ZONE_NAME2
radosgw-admin sync group flow remove --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME1,ZONE_NAME2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.9. 동기화 그룹 파이프 생성 또는 수정 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 파이프를 정의하여 구성된 데이터 흐름 및 해당 데이터 흐름과 연결된 속성을 사용할 수 있는 버킷을 지정할 수 있습니다.
동기화 그룹 pipe create 명령을 사용하면 특정 버킷 또는 버킷 그룹 간 또는 특정 영역 또는 영역 그룹 간 사용자 지정 동기화 그룹 데이터 흐름인 파이프를 생성할 수 있습니다.
이 명령은 다음 옵션을 사용합니다.
| 옵션 | 설명 | 필수/선택 사항 |
|---|---|---|
| --bucket | 구성해야 하는 동기화 정책의 버킷 이름입니다. 버킷 수준 동기화 정책에서만 사용됩니다. | 선택 사항 |
| --group-id | 동기화 그룹의 ID | 필수 항목 |
| --pipe-id | 파이프 ID | 필수 항목 |
| --source-zones |
동기화 그룹에 데이터를 전송하는 영역입니다. value에는 작은따옴표(')를 사용합니다. 쉼표를 사용하여 여러 영역을 구분합니다. 데이터 흐름 규칙과 일치하는 모든 영역에 와일드카드 | 필수 항목 |
| --source-bucket |
동기화 그룹에 데이터를 전송하는 버킷 또는 버킷입니다. 버킷 이름을 언급하지 않으면 | 선택 사항 |
| --source-bucket-id | 소스 버킷의 ID입니다. | 선택 사항 |
| --dest-zones |
동기화 데이터를 수신하는 영역 또는 영역입니다. value에는 작은따옴표(')를 사용합니다. 쉼표를 사용하여 여러 영역을 구분합니다. 데이터 흐름 규칙과 일치하는 모든 영역에 와일드카드 | 필수 항목 |
| --dest-bucket |
동기화 데이터를 수신하는 버킷 또는 버킷입니다. 버킷 이름을 언급하지 않으면 | 선택 사항 |
| --dest-bucket-id | 대상 버킷의 ID입니다. | 선택 사항 |
| --prefix |
버킷 접두사입니다. 와일드카드 | 선택 사항 |
| --prefix-rm | 필터링에 버킷 접두사를 사용하지 마십시오. | 선택 사항 |
| --tags-add | 쉼표로 구분된 키=값 쌍 목록입니다. | 선택 사항 |
| --tags-rm | 태그의 키=값 쌍을 하나 이상 제거합니다. | 선택 사항 |
| --dest-owner | 소스에서 오브젝트의 대상 소유자입니다. | 선택 사항 |
| --storage-class | 소스에서 오브젝트의 대상 스토리지 클래스입니다. | 선택 사항 |
| --mode |
| 선택 사항 |
| --uid | 사용자 모드에서 권한 검증에 사용됩니다. 동기화 작업을 실행할 사용자 ID를 지정합니다. | 선택 사항 |
영역 그룹 수준에서 특정 버킷에 대한 동기화를 활성화/비활성화하려면 동일한 버킷 이름 또는 버킷-id를 사용하여 각 버킷에 대한 파이프를 활성화/비활성화하고 을 사용하여 각 버킷에 대한 파이프를 생성하십시오(예: -- --dest-bucket source- . . . .
bucket-id 및 --dest-bucket-id 및 --dest-bucket
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
동기화 그룹 파이프를 생성합니다.
create명령은 관련 옵션으로만 동기화 그룹 파이프를 생성하여 명령을 업데이트하는 데도 사용됩니다.구문
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET --dest-bucket-id=DESTINATION_BUCKET_ID --prefix=SOURCE_PREFIX --prefix-rm --tags-add=KEY1=VALUE1,KEY2=VALUE2,.. --tags-rm=KEY1=VALUE1,KEY2=VALUE2, ... --dest-owner=OWNER_ID --storage-class=STORAGE_CLASS --mode=USER --uid=USER_ID
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET --dest-bucket-id=DESTINATION_BUCKET_ID --prefix=SOURCE_PREFIX --prefix-rm --tags-add=KEY1=VALUE1,KEY2=VALUE2,.. --tags-rm=KEY1=VALUE1,KEY2=VALUE2, ... --dest-owner=OWNER_ID --storage-class=STORAGE_CLASS --mode=USER --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.10. 동기화 그룹 파이프 수정 또는 삭제 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 동기화 그룹 pipe modify 명령 또는 명령을 사용하여 특정 옵션을 제거하여 동기화 그룹 파이프를 수정할 수 있습니다. 동기화 그룹 pipe remove동기화 그룹 pipe remove 명령을 사용하여 영역, 버킷 또는 동기화 그룹 파이프를 완전히 제거할 수도 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
프로세스
modify인수를 사용하여 동기화 그룹 파이프 옵션을 수정합니다.구문
radosgw-admin sync group pipe modify --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET1 --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET1 --dest-bucket-id=_DESTINATION_BUCKET-ID
radosgw-admin sync group pipe modify --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET1 --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET1 --dest-bucket-id=_DESTINATION_BUCKET-IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고영역을 작은따옴표(')에 배치해야 합니다. 소스 버킷에는 따옴표가 필요하지 않습니다.
예제
radosgw-admin sync group pipe modify --group-id=zonegroup --pipe-id=pipe --dest-zones='primary','secondary','tertiary' --source-zones='primary','secondary','tertiary' --source-bucket=pri-bkt-1 --dest-bucket=pri-bkt-1
[root@host01 ~]# radosgw-admin sync group pipe modify --group-id=zonegroup --pipe-id=pipe --dest-zones='primary','secondary','tertiary' --source-zones='primary','secondary','tertiary' --source-bucket=pri-bkt-1 --dest-bucket=pri-bkt-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow remove인수를 사용하여 동기화 그룹 파이프 옵션을 수정합니다.구문
radosgw-admin sync group pipe remove --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET, --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET --dest-bucket-id=DESTINATION_BUCKET-ID
radosgw-admin sync group pipe remove --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET, --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET --dest-bucket-id=DESTINATION_BUCKET-IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin sync group pipe remove --group-id=zonegroup --pipe-id=pipe --dest-zones='primary','secondary','tertiary' --source-zones='primary','secondary','tertiary' --source-bucket=pri-bkt-1 --dest-bucket=pri-bkt-1
[root@host01 ~]# radosgw-admin sync group pipe remove --group-id=zonegroup --pipe-id=pipe --dest-zones='primary','secondary','tertiary' --source-zones='primary','secondary','tertiary' --source-bucket=pri-bkt-1 --dest-bucket=pri-bkt-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동기화 그룹 파이프를 삭제합니다.
구문
radosgw-admin sync group pipe remove --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID
radosgw-admin sync group pipe remove --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin sync group pipe remove -bucket-name=mybuck --group-id=zonegroup --pipe-id=pipe
[root@host01 ~]# radosgw-admin sync group pipe remove -bucket-name=mybuck --group-id=zonegroup --pipe-id=pipeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.11. 동기화 작업에 대한 정보 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
sync info 명령을 사용하면 동기화 정책에서 정의한 대로 예상되는 동기화 소스 및 대상에 대한 정보를 가져올 수 있습니다.
버킷에 대한 동기화 정책을 생성할 때 해당 정책은 데이터가 해당 버킷에서 다른 영역의 다른 버킷으로 이동하는 방식을 정의합니다. 정책을 생성하면 버킷이 다른 버킷과 동기화될 때마다 힌트로 사용되는 버킷 종속성 목록이 생성됩니다. 버킷은 실제로 동기화되지 않고 다른 버킷을 참조할 수 있습니다. 동기화는 데이터 흐름에서 동기화를 허용하는지 여부에 따라 달라집니다.
--bucket 및 effective-zone-name 매개변수는 모두 선택 사항입니다. 옵션을 지정하지 않고 sync info 명령을 호출하면 Object Gateway는 모든 영역의 동기화 정책으로 정의된 모든 동기화 작업을 반환합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터입니다.
-
root 또는
sudo액세스. - Ceph Object Gateway가 설치되어 있습니다.
- 그룹 동기화 정책이 정의됩니다.
프로세스
버킷의 동기화 작업에 대한 정보를 가져옵니다.
구문
radosgw-admin sync info --bucket=BUCKET_NAME --effective-zone-name=ZONE_NAME
radosgw-admin sync info --bucket=BUCKET_NAME --effective-zone-name=ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup 수준에서 동기화 작업에 대한 정보를 가져옵니다.
구문
radosgw-admin sync info
radosgw-admin sync infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8. 버킷 세분화된 동기화 정책 링크 복사링크가 클립보드에 복사되었습니다!
이제 다음 기능이 지원됩니다.
- 그린 필드 배포: 이 릴리스에서는 새로운 다중 사이트 배포를 지원합니다. 버킷 세분화된 동기화 복제를 설정하려면 새 영역 그룹/zone을 최소한으로 구성해야 합니다.
- brownfield deployment: Ceph Object Gateway 다중 사이트 복제 구성을 새로 제공하는 Ceph Object Gateway 버킷 세분화된 동기화 정책 복제로 마이그레이션하거나 업그레이드합니다.
업그레이드 중에 스토리지 클러스터의 모든 노드가 동일한 스키마에 있는지 확인합니다.
- 데이터 흐름 - 방향성, 대칭성 : 단방향 및 양방향/대칭 복제를 구성할 수 있습니다.
이번 릴리스에서는 다음 기능이 지원되지 않습니다.
- 소스 필터
- 스토리지 클래스
- 대상 소유자 변환
- 사용자 모드
버킷 또는 zonegroup의 동기화 정책이 disabled 에서 enabled 상태로 이동하면 다음과 같은 동작 변경 사항이 관찰됩니다.
일반적인 시나리오:
- zonegroup 수준: 동기화 정책이 비활성화 되면 추가 단계 없이 동기화 정책이 활성화되는 즉시 다운로드됩니다.
버킷 수준: 동기화 정책이 비활성화 되면 정책이 활성화될 때 데이터가 수집되지 않습니다. 이 경우 아래 두 가지 해결 방법 중 하나를 적용할 수 있습니다.
- 버킷에 새 데이터를 작성하면 이전 데이터가 다시 동기화됩니다.
-
버킷 동기화 실행명령을 실행하면 이전 데이터가 모두 동기화됩니다.
동기화 정책에서 레거시 정책으로 전환하려면 먼저 sync init 명령을 실행한 다음 radosgw-admin 버킷 sync 명령을 실행하여 모든 오브젝트를 동기화해야 합니다.
reshard 시나리오:
-
zonegroup 수준: 정책이
비활성화될 때 발생하는 모든 reshard, 정책을 다시활성화한후 동기화가 멈춥니다. 이 시점에서 새 오브젝트도 동기화되지 않습니다.버킷 동기화 실행 명령을 해결 방법으로 실행합니다. -
버킷 수준: 정책이
비활성화되면 버킷이 다시 하드된 경우 정책을 다시 활성화한 후 동기화가 중단됩니다. 이 시점에서 새 오브젝트도 동기화되지 않습니다.버킷 동기화 실행 명령을 해결 방법으로 실행합니다.
정책이 zonegroup에 대해 활성화 되도록 설정되고 정책이 버킷에 대해 활성화 또는 허용 되도록 설정된 경우 파이프 구성은 버킷 수준이 아닌 zonegroup 수준에서 적용됩니다. 이는 알려진 문제 BZ#2240719 입니다.
5.8.1. 영역 그룹의 양방향 정책 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹 동기화 정책은 새 동기화 정책 엔진을 사용하여 생성됩니다. zonegroup 동기화 정책을 변경하려면 기간 업데이트 및 커밋이 필요합니다.
아래 예제에서 그룹 정책을 생성하고 한 영역에서 다른 영역으로 데이터 이동을 위한 데이터 흐름을 정의합니다. 이 데이터 흐름을 사용할 수 있는 버킷을 정의하도록 영역 그룹의 파이프를 구성합니다. 아래 예제의 시스템에는 us-east (마스터 영역), us-west 및 us-west -2 의 3 영역이 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
프로세스
상태가 allowed 로 설정된 새 동기화 그룹을 생성합니다.
예제
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=group1 --status=allowed
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=group1 --status=allowedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고완전히 구성된 zonegroup 복제 정책이 생성될 때까지 복제가 시작되지 않도록 --status 를
allowed로 설정하는 것이 좋습니다.양방향 복제를 활성화하려면 --flow-type 을
대칭으로 설정하여 새로 생성된 그룹에 대한 흐름 정책을 생성합니다.예제
[ceph: root@host01 /]# radosgw-admin sync group flow create --group-id=group1 \ --flow-id=flow-mirror --flow-type=symmetrical \ --zones=us-east,us-west[ceph: root@host01 /]# radosgw-admin sync group flow create --group-id=group1 \ --flow-id=flow-mirror --flow-type=symmetrical \ --zones=us-east,us-westCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파이프라는 새 파이프를 만듭니다.
예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --group-id=group1 \ --pipe-id=pipe1 --source-zones='*' \ --source-bucket='*' --dest-zones='*' \ --dest-bucket='*'[ceph: root@host01 /]# radosgw-admin sync group pipe create --group-id=group1 \ --pipe-id=pipe1 --source-zones='*' \ --source-bucket='*' --dest-zones='*' \ --dest-bucket='*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고영역에 * 와일드카드를 사용하여 이전 흐름 정책에 설정된 모든 영역을 포함하고 버킷의 경우 *를 사용하여 영역의 모든 기존 버킷을 복제합니다.
버킷 동기화 정책을 구성한 후 --status 를 enabled 로 설정합니다.
예제
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=group1 --status=enabled
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=group1 --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 기간을 업데이트하고 커밋합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고zonegroup 정책의 경우 기간을 업데이트하고 커밋해야 합니다.
선택 사항: 동기화 소스 및 특정 버킷의 대상을 확인합니다. us-east 및 us-west 영역의 모든 버킷은 양방향으로 복제합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 출력의 id 필드에는 해당 항목을 생성한 파이프 규칙이 반영됩니다. 아래 예와 같이 단일 규칙은 여러 개의 동기화 항목을 생성할 수 있습니다.
5.8.2. 영역 그룹의 방향 정책 설정 링크 복사링크가 클립보드에 복사되었습니다!
동기화 정책 엔진으로 영역 그룹의 정책을 방향적으로 설정합니다.
다음 예에서는 그룹 정책을 생성하고 한 영역에서 다른 영역으로 데이터 이동을 위한 데이터 흐름을 구성합니다. 또한 이 데이터 흐름을 사용할 수 있는 버킷을 정의하도록 영역 그룹의 파이프를 구성합니다. 다음 예제의 시스템에는 us-east (기본 영역), us-west(두 번째 영역) 및 (백업 영역)의 3 영역이 포함됩니다. 여기에서 us-west -2us-west-2 는 us-west 의 복제본이지만 데이터는 복제되지 않습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
프로세스
기본 영역에서 allowed 로 설정된 상태로 새 동기화 그룹을 생성합니다.
구문
radosgw-admin sync group create --group-id=GROUP_ID --status=allowed
radosgw-admin sync group create --group-id=GROUP_ID --status=allowedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=group1 --status=allowed
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=group1 --status=allowedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고완전히 구성된 zonegroup 복제 정책이 생성될 때까지 복제가 시작되지 않도록
--status를allowed로 설정하는 것이 좋습니다.흐름을 만듭니다.
구문
radosgw-admin sync group flow create --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE_NAME --dest-zone=DESTINATION_ZONE_NAME
radosgw-admin sync group flow create --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE_NAME --dest-zone=DESTINATION_ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group flow create --group-id=group1 --flow-id=us-west-backup --flow-type=directional --source-zone=us-west --dest-zone=us-west-2
[ceph: root@host01 /]# radosgw-admin sync group flow create --group-id=group1 --flow-id=us-west-backup --flow-type=directional --source-zone=us-west --dest-zone=us-west-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파이프를 만듭니다.
구문
radosgw-admin sync group pipe create --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='SOURCE_ZONE_NAME' --dest-zones='DESTINATION_ZONE_NAME'
radosgw-admin sync group pipe create --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='SOURCE_ZONE_NAME' --dest-zones='DESTINATION_ZONE_NAME'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --group-id=group1 --pipe-id=pipe1 --source-zones='us-west' --dest-zones='us-west-2'
[ceph: root@host01 /]# radosgw-admin sync group pipe create --group-id=group1 --pipe-id=pipe1 --source-zones='us-west' --dest-zones='us-west-2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 기간을 업데이트하고 커밋합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고zonegroup 정책의 경우 기간을 업데이트하고 커밋해야 합니다.
두 사이트의 동기화 정보를 사용하여 zonegroup의 소스 및 대상을 확인합니다.
구문
radosgw-admin sync info
radosgw-admin sync infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8.3. 버킷에 대한 방향 정책 설정 링크 복사링크가 클립보드에 복사되었습니다!
동기화 정책 엔진과 함께 버킷의 정책을 방향대로 설정합니다.
다음 예에서는 그룹 정책을 생성하고 한 영역에서 다른 영역으로 데이터 이동을 위한 데이터 흐름을 구성합니다. 또한 이 데이터 흐름을 사용할 수 있는 버킷을 정의하도록 영역 그룹의 파이프를 구성합니다. 다음 예제의 시스템에는 us-east (기본 영역), us-west(두 번째 영역) 및 (백업 영역)의 3 영역이 포함됩니다. 여기에서 us-west -2us-west-2 는 us-west 의 복제본이지만 데이터는 복제되지 않습니다.
영역 그룹과 버킷에 대한 방향 정책을 설정하는 것과의 차이점은 --bucket 옵션을 지정해야 한다는 것입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
프로세스
기본 영역에서 allowed 로 설정된 상태로 새 동기화 그룹을 생성합니다.
구문
radosgw-admin sync group create --group-id=GROUP_ID --status=allowed --bucket=BUCKET_NAME
radosgw-admin sync group create --group-id=GROUP_ID --status=allowed --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=group1 --status=allowed --bucket=buck
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=group1 --status=allowed --bucket=buckCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고완전히 구성된 zonegroup 복제 정책이 생성될 때까지 복제가 시작되지 않도록
--status를allowed로 설정하는 것이 좋습니다.흐름을 만듭니다.
구문
radosgw-admin sync group flow create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE_NAME --dest-zone=DESTINATION_ZONE_NAME
radosgw-admin sync group flow create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE_NAME --dest-zone=DESTINATION_ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group flow create --bucket-name=buck --group-id=group1 --flow-id=us-west-backup --flow-type=directional --source-zone=us-west --dest-zone=us-west-2
[ceph: root@host01 /]# radosgw-admin sync group flow create --bucket-name=buck --group-id=group1 --flow-id=us-west-backup --flow-type=directional --source-zone=us-west --dest-zone=us-west-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파이프를 만듭니다.
구문
radosgw-admin sync group pipe create --group-id=GROUP_ID --bucket-name=BUCKET_NAME --pipe-id=PIPE_ID --source-zones='SOURCE_ZONE_NAME' --dest-zones='DESTINATION_ZONE_NAME'
radosgw-admin sync group pipe create --group-id=GROUP_ID --bucket-name=BUCKET_NAME --pipe-id=PIPE_ID --source-zones='SOURCE_ZONE_NAME' --dest-zones='DESTINATION_ZONE_NAME'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --group-id=group1 --bucket-name=buck --pipe-id=pipe1 --source-zones='us-west' --dest-zones='us-west-2'
[ceph: root@host01 /]# radosgw-admin sync group pipe create --group-id=group1 --bucket-name=buck --pipe-id=pipe1 --source-zones='us-west' --dest-zones='us-west-2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 사이트의 동기화 정보를 사용하여 zonegroup의 소스 및 대상을 확인합니다.
구문
radosgw-admin sync info --bucket-name=BUCKET_NAME
radosgw-admin sync info --bucket-name=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8.4. 버킷에 대한 양방향 정책 설정 링크 복사링크가 클립보드에 복사되었습니다!
버킷 수준 정책에 대한 데이터 흐름은 zonegroup 정책에서 상속됩니다. 버킷 수준 정책 흐름 및 파이프는 영역 그룹 정책에 정의된 흐름의 하위 집합이므로 버킷 수준 정책에 대해 데이터 흐름 및 파이프를 변경할 필요가 없습니다.
- 버킷 수준 정책은 zonegroup 정책에서 금지된 를 제외하고 활성화되지 않은 파이프를 활성화할 수 있습니다.
- 버킷 수준 정책에는 기간 업데이트가 필요하지 않습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- 동기화 흐름이 생성됩니다.
프로세스
bucket 복제를 허용할
수있도록 zonegroup 정책--status를 설정합니다.예제
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=group1 --status=allowed
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=group1 --status=allowedCopy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup 정책을 수정한 후 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 동기화하려는 버킷에 대한 동기화 그룹을 생성하고
--status를enabled로 설정합니다.예제
[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck \ --group-id=buck-default --status=enabled[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck \ --group-id=buck-default --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계에서 만든 그룹의 파이프를 만듭니다. 흐름은 데이터 흐름이 대칭인 zonegroup 수준 정책에서 상속됩니다.
예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck \ --group-id=buck-default --pipe-id=pipe1 \ --source-zones='*' --dest-zones='*'[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck \ --group-id=buck-default --pipe-id=pipe1 \ --source-zones='*' --dest-zones='*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고와일드카드 *를 사용하여 버킷 복제의 소스 및 대상 영역을 지정합니다.
선택 사항: 동기화 정책에 정의된 예상 버킷 동기화 소스 및 대상에 대한 정보를 검색하려면
--명령을 실행합니다.bucket플래그와 함께 radosgw-admin 버킷 동기화 info예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 동기화 정책에 정의된 예상 동기화 소스 및 대상에 대한 정보를 검색하려면 --bucket 플래그를 사용하여
radosgw-admin sync info명령을 실행합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8.5. 버킷 간 동기화 링크 복사링크가 클립보드에 복사되었습니다!
영역 간에 소스와 대상 버킷 간에 데이터를 동기화할 수 있지만 동일한 영역에는 동기화할 수 없습니다. 내부적으로는 여전히 대상 영역의 소스에서 데이터를 가져옵니다.
와일드카드 버킷 이름은 현재 버킷이 버킷 동기화 정책의 컨텍스트에 있음을 나타냅니다.
버킷 간에는 다음 두 가지 유형의 동기화가 있습니다.
- 버킷에서 동기화 - 소스 버킷을 지정해야 합니다.
- 버킷에 동기화 - 대상 버킷을 지정해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
다른 버킷에서 동기화
다른 영역의 버킷에서 데이터를 가져올 동기화 그룹을 생성합니다.
구문
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck4 --group-id=buck4-default --status=enabled
[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck4 --group-id=buck4-default --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 가져오기.
구문
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --source-bucket=SOURCE_BUCKET_NAME --dest-zones=DESTINATION_ZONE_NAME
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --source-bucket=SOURCE_BUCKET_NAME --dest-zones=DESTINATION_ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck4 \ --group-id=buck4-default --pipe-id=pipe1 \ --source-zones='*' --source-bucket=buck5 \ --dest-zones='*'[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck4 \ --group-id=buck4-default --pipe-id=pipe1 \ --source-zones='*' --source-bucket=buck5 \ --dest-zones='*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 소스 버킷이
buck5임을 확인할 수 있습니다.선택 사항: 특정 영역의 버킷과 동기화합니다.
예제
[ceph: root@host01 /]# radosgw-admin sync group pipe modify --bucket=buck4 \ --group-id=buck4-default --pipe-id=pipe1 \ --source-zones=us-west --source-bucket=buck5 \ --dest-zones='*'[ceph: root@host01 /]# radosgw-admin sync group pipe modify --bucket=buck4 \ --group-id=buck4-default --pipe-id=pipe1 \ --source-zones=us-west --source-bucket=buck5 \ --dest-zones='*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동기화 상태를 확인합니다.
구문
radosgw-admin sync info --bucket-name=BUCKET_NAME
radosgw-admin sync info --bucket-name=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow resolved-hints가 있습니다. 즉, 버킷buck5는 자체 정책이 아닌 간접적으로buck4동기화에 대해 발견되었습니다.buck5자체에 대한 정책은 비어 있습니다.
다른 버킷에 동기화
동기화 그룹을 생성합니다.
구문
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck6 \ --group-id=buck6-default --status=enabled[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck6 \ --group-id=buck6-default --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터를 푸시합니다.
구문
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME --dest-bucket=DESTINATION_BUCKET_NAME
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME --dest-bucket=DESTINATION_BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck6 \ --group-id=buck6-default --pipe-id=pipe1 \ --source-zones='*' --dest-zones='*' --dest-bucket=buck5[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck6 \ --group-id=buck6-default --pipe-id=pipe1 \ --source-zones='*' --dest-zones='*' --dest-bucket=buck5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 대상 버킷이
buck5임을 확인할 수 있습니다.선택 사항: 특정 영역의 버킷에 동기화합니다.
예제
[ceph: root@host01 /]# radosgw-admin sync group pipe modify --bucket=buck6 \ --group-id=buck6-default --pipe-id=pipe1 \ --source-zones='*' --dest-zones='us-west' --dest-bucket=buck5[ceph: root@host01 /]# radosgw-admin sync group pipe modify --bucket=buck6 \ --group-id=buck6-default --pipe-id=pipe1 \ --source-zones='*' --dest-zones='us-west' --dest-bucket=buck5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동기화 상태를 확인합니다.
구문
radosgw-admin sync info --bucket-name=BUCKET_NAME
radosgw-admin sync info --bucket-name=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8.6. 오브젝트 필터링 링크 복사링크가 클립보드에 복사되었습니다!
접두사 및 태그를 사용하여 버킷 내에서 오브젝트를 필터링합니다. zonegroup 수준 정책에서도 오브젝트 필터를 설정할 수 있습니다. --bucket 옵션을 사용하는 경우 버킷의 버킷 수준으로 설정됩니다.
다음 예에서 한 영역의 buck1 버킷에서 동기화가 foo/ 접두사로 시작하는 오브젝트와 다른 영역의 buck1 버킷과 동기화됩니다. 마찬가지로 color=blue 와 같은 태그가 있는 오브젝트를 필터링할 수 있습니다. 접두사와 태그를 결합할 수 있습니다. 이 경우 오브젝트를 동기화하려면 둘 다 사용해야 합니다. priority 매개변수도 전달할 수 있으며, 일치하는 여러 다른 규칙이 있는 시기를 결정하는 데 사용됩니다. 이 구성에서는 사용할 규칙이 결정됩니다.
- 동기화 정책의 태그에 오브젝트를 동기화하는 동안 두 개 이상의 태그가 있는 경우 키 값 쌍인 하나 이상의 태그와 일치하는 오브젝트를 동기화합니다. 오브젝트가 모든 태그 세트와 일치하지 않을 수 있습니다.
- 접두사 및 태그가 설정된 경우 오브젝트를 다른 영역과 동기화하려면 오브젝트에 접두사가 있어야 하며 하나의 태그가 일치해야 합니다. 그런 다음 서로 동기화됩니다.
사전 요구 사항
- 두 개 이상의 실행 중인 Red Hat Ceph Storage 클러스터
- Ceph Object Gateway가 설치되어 있습니다.
- 버킷이 생성됩니다.
프로세스
새 동기화 그룹을 생성합니다. 버킷 수준에서 생성하려면
--bucket옵션을 사용합니다.구문
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck1 --group-id=buck8-default --status=enabled
[ceph: root@host01 /]# radosgw-admin sync group create --bucket=buck1 --group-id=buck8-default --status=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트가 태그와 일치하는 버킷 간 동기화. 흐름은 데이터 흐름이 대칭인 zonegroup 수준 정책에서 상속됩니다.
구문
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --tags-add=KEY1=VALUE1,KEY2=VALUE2 --source-zones='ZONE_NAME1','ZONE_NAME2' --dest-zones='ZONE_NAME1','ZONE_NAME2'
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --tags-add=KEY1=VALUE1,KEY2=VALUE2 --source-zones='ZONE_NAME1','ZONE_NAME2' --dest-zones='ZONE_NAME1','ZONE_NAME2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck1 \ --group-id=buck1-default --pipe-id=pipe-tags \ --tags-add=color=blue,color=red --source-zones='*' \ --dest-zones='*'[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck1 \ --group-id=buck1-default --pipe-id=pipe-tags \ --tags-add=color=blue,color=red --source-zones='*' \ --dest-zones='*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트가 접두사와 일치하는 버킷 간 동기화. 흐름은 데이터 흐름이 대칭인 zonegroup 수준 정책에서 상속됩니다.
구문
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --prefix=PREFIX --source-zones='ZONE_NAME1','ZONE_NAME2' --dest-zones='ZONE_NAME1','ZONE_NAME2'
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --prefix=PREFIX --source-zones='ZONE_NAME1','ZONE_NAME2' --dest-zones='ZONE_NAME1','ZONE_NAME2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck1 \ --group-id=buck1-default --pipe-id=pipe-prefix \ --prefix=foo/ --source-zones='*' --dest-zones='*' \[ceph: root@host01 /]# radosgw-admin sync group pipe create --bucket=buck1 \ --group-id=buck1-default --pipe-id=pipe-prefix \ --prefix=foo/ --source-zones='*' --dest-zones='*' \Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 동기화를 확인합니다.
구문
radosgw-admin sync info --bucket=BUCKET_NAME
radosgw-admin sync info --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync info --bucket=buck1
[ceph: root@host01 /]# radosgw-admin sync info --bucket=buck1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고예에서는 두 개의 서로 다른 대상과 소스만 반영되며, 구성마다 하나씩만 반영됩니다. 동기화 프로세스가 발생하면 동기화되는 각 오브젝트에 대한 관련 규칙을 선택합니다.
5.8.7. 버킷 간 정책 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
금지 또는 허용되는 상태와 동기화 정보와 함께 버킷 간 정책을 비활성화할 수 있습니다.
영역 그룹 및 버킷 수준 동기화 정책에 사용할 수 있는 다양한 조합의 다중 사이트 동기화 정책 상태를 참조하십시오.
경우에 따라 두 버킷 간 복제를 중단하려면 버킷에 대한 그룹 정책을 금지할 수 있습니다. 설정된 동기화가 버킷에 대해 발생하지 않는 경우 zonegroup 수준에서 정책을 비활성화할 수도 있습니다.
radosgw-admin 동기화 그룹 create 명령을 사용하여 있습니다.
허용 또는 금지된 상태로 비활성화된 상태로 동기화 정책을 생성할 수도
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
프로세스
동기화 그룹 modify명령을 실행하여 허용 에서 금지 됨으로 상태를 변경합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 버킷 버클의 복제는
와us-eastus-west영역 간에 중단됩니다.참고버킷 동기화 정책이므로 해당 기간에 대한 업데이트 및 커밋이 필요하지 않습니다.
선택 사항:
sync info 명령명령을 실행하여 버킷buck의 동기화 상태를 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고복제가 중단되므로 소스 및 대상 대상이 없습니다.
5.8.8. 대상 매개변수 사용 링크 복사링크가 클립보드에 복사되었습니다!
파이프 구성은 연결된 속성과 함께 그룹에 설정된 데이터 흐름을 활용하는 특정 버킷을 지정합니다. 파이프 구성에서 대상 버킷 또는 영역이 파이프 구성과 일치하는 경우 destination 매개 변수는 오브젝트의 위치를 지정합니다.
대상 매개변수에는 세 가지 유형이 있습니다.
- 스토리지 클래스
- 대상 소유자 변환
- 사용자 모드
5.8.8.1. 대상 params: 스토리지 클래스 링크 복사링크가 클립보드에 복사되었습니다!
이 방법을 사용하면 오브젝트를 대상의 특정 스토리지 클래스에 복제할 수 있습니다.
대상 오브젝트의 스토리지 클래스를 구성하는 구문:
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME --dest-bucket=DESTINATION_BUCKET_NAME --storage-class=STORAGE_CLASS
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME --dest-bucket=DESTINATION_BUCKET_NAME --storage-class=STORAGE_CLASS
예제:
5.8.8.2. 대상 매개변수: 대상 소유자 변환 링크 복사링크가 클립보드에 복사되었습니다!
이 방법을 사용하면 사용자 또는 버킷 정책을 구성하지 않고 소스 버킷에서 다른 소유자의 대상 버킷으로 오브젝트를 복제할 수 있습니다.
대상 오브젝트 소유자를 대상 버킷 소유자로 설정하는 구문입니다. 이를 위해서는 대상 버킷의 UID를 지정해야 합니다.
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME --dest-owner=DESTINATION_OWNER --dest-bucket=DESTINATION_BUCKET_NAME
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME --dest-owner=DESTINATION_OWNER --dest-bucket=DESTINATION_BUCKET_NAME
예제:
5.8.8.3. 대상 매개변수: 사용자 모드 링크 복사링크가 클립보드에 복사되었습니다!
사용자 모드를 사용하면 사용자가 오브젝트를 읽고 대상 버킷에 쓸 수 있는 권한이 있습니다. 이를 위해서는 사용자의 uid(작업이 실행되는 컨텍스트)가 지정되어야 합니다.
대상 영역의 대상 버킷에 오브젝트를 복제하려면 해당 버킷에 대한 읽기 및 쓰기 권한이 있어야 합니다. 기본적으로 사용자 모드는 시스템(-mode = system )으로 설정됩니다. 사용자 모드를 구성하려면 사용자의 사용자 ID(--uid)와 함께 사용자로 모드를 지정합니다.
사용자 모드의 사용자 ID를 설정하여 권한 검증에 대한 동기화 작업을 실행할 수 있습니다.
관리자가 아닌 사용자가 대칭 흐름을 사용하여 영역 그룹 수준에서 모드로 시스템을 설정하는 경우:
- 버킷 소유자는 버킷에만 IO를 쓸 수 있으며 동기화됩니다.
- 모드가 시스템에 설정된 사용자는 버킷에만 쓸 수 있으며 다른 사용자 버킷에는 쓸 수 없습니다.
- 관리자 또는 시스템 사용자는 모든 버킷에 쓸 수 있으며 다른 사이트와 동기화됩니다.
admin 사용자가 아닌 모든 사용자의 --mode=system 인 경우 해당 동작은 모드 사용자와 동일합니다. 사용자는 대상 버킷에 쓰기 또는 읽기 권한이 있는 경우에만 쓸 수 있습니다.
admin/system 사용자가 mode를 --mode=user 로 설정하면 관리자가 아닌 사용자가 오브젝트를 소유 버킷에 쓸 수 있습니다. 모드가 user이므로 오브젝트가 대상에 동기화되지 않습니다.
구문:
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME bucket=DESTINATION_BUCKET_NAME --mode=user --uid=UID_OF_USER
radosgw-admin sync group pipe create --bucket-name=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones=SOURCE_ZONE_NAME --dest-zones=DESTINATION_ZONE_NAME bucket=DESTINATION_BUCKET_NAME --mode=user --uid=UID_OF_USER
예제:
[ceph: root@host01 /]# radosgw-admin sync group pipe modify --bucket=buck11 \
--group-id=buck11-default --pipe-id=pipe-dest-owner \
--mode=user --uid=jenny
[ceph: root@host01 /]# radosgw-admin sync group pipe modify --bucket=buck11 \
--group-id=buck11-default --pipe-id=pipe-dest-owner \
--mode=user --uid=jenny
5.9. 다중 사이트 Ceph Object Gateway 명령줄 사용 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 다중 사이트 환경에서 Ceph Object Gateway를 사용하는 방법을 잘 이해할 수 있습니다. 다중 사이트 환경에서 영역, 영역 그룹 및 영역을 보다 효과적으로 관리하는 방법을 배울 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage.
- Ceph Object Gateway 소프트웨어 배포.
- Ceph Object Gateway 노드 또는 컨테이너에 액세스합니다.
5.9.1. realms 링크 복사링크가 클립보드에 복사되었습니다!
영역은 하나 이상의 영역을 포함하는 하나 이상의 영역 그룹과 차례로 오브젝트를 포함하는 버킷을 포함하는 하나 이상의 영역 그룹으로 구성된 전역적으로 고유한 네임스페이스를 나타냅니다. 영역을 사용하면 Ceph Object Gateway에서 동일한 하드웨어에서 여러 네임스페이스 및 해당 구성을 지원할 수 있습니다.
영역에는 마침표의 개념이 포함되어 있습니다. 각 기간은 시간대 그룹 및 시간대 구성의 상태를 나타냅니다. 영역 그룹 또는 영역을 변경할 때마다 기간을 업데이트하고 커밋합니다.
Red Hat은 새 클러스터의 영역을 생성하는 것이 좋습니다.
5.9.1.1. 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
영역을 생성하려면 realm create 명령을 사용하고 영역 이름을 지정합니다.
프로세스
영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REALM_NAME
radosgw-admin realm create --rgw-realm=REALM_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요데이터 및 메타데이터가
default.rgw.data및 default.rgw.index 풀에 저장된 경우플래그와 함께 영역을 사용하지 마십시오. 새 영역이 기본값으로 설정되고 이러한 풀에 중요한 데이터가 포함된 경우--defaultradosgw-admin유틸리티에서 이 데이터를 올바르게 관리하지 못할 수 있습니다.필요한 경우 영역을 기본값으로 지정하고
default.rgw풀에 기존 데이터 또는 메타데이터가 필요하지 않은 경우에만--default플래그를 사용합니다. 기존 데이터 또는 메타데이터가 필요한 경우 기본 구성을 다중 사이트 또는 영역 설정으로 마이그레이션하거나 새 영역을 기본값으로 설정하지 않도록 합니다. 다중 사이트로 마이그레이션하는 방법에 대한 자세한 내용은 단일 사이트 시스템을 다중 사이트로 마이그레이션 을 참조하십시오.--default를 지정하면--rgw-realm및 realm 이름이 명시적으로 제공되지 않는 한 각radosgw-admin호출을 사용하여 이 영역을 암시적으로 호출합니다.선택 사항: 기본 영역을 변경합니다.
구문
radosgw-admin realm default --rgw-realm=REALM_NAME
radosgw-admin realm default --rgw-realm=REALM_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin realm default --rgw-realm=test_realm1
[ceph: root@host01 /]# radosgw-admin realm default --rgw-realm=test_realm1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.2. 기본값 만들기 링크 복사링크가 클립보드에 복사되었습니다!
영역 목록에 있는 하나의 영역은 기본 영역이어야 합니다. 기본 영역은 하나만 있을 수 있습니다. 영역이 하나만 있고 기본 영역을 만들 때 기본 영역으로 지정되지 않은 경우 기본 영역으로 설정합니다. 또는 기본 영역을 변경하려면 다음 명령을 실행합니다.
[ceph: root@host01 /]# radosgw-admin realm default --rgw-realm=test_realm
[ceph: root@host01 /]# radosgw-admin realm default --rgw-realm=test_realm
영역이 default인 경우 명령줄은 --rgw-realm=realM_NAME 을 인수로 가정합니다.
5.9.1.3. Cryostat 삭제 링크 복사링크가 클립보드에 복사되었습니다!
영역을 삭제하려면 realm delete 명령을 실행하고 영역 이름을 지정합니다.
구문
radosgw-admin realm delete --rgw-realm=REALM_NAME
radosgw-admin realm delete --rgw-realm=REALM_NAME
예제
[ceph: root@host01 /]# radosgw-admin realm delete --rgw-realm=test_realm
[ceph: root@host01 /]# radosgw-admin realm delete --rgw-realm=test_realm
5.9.1.4. 영역 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
영역을 가져오려면 realm get 명령을 실행하고 영역 이름을 지정합니다.
구문
radosgw-admin realm get --rgw-realm=REALM_NAME
radosgw-admin realm get --rgw-realm=REALM_NAME
예제
[ceph: root@host01 /]# radosgw-admin realm get --rgw-realm=test_realm >filename.json
[ceph: root@host01 /]# radosgw-admin realm get --rgw-realm=test_realm >filename.json
CLI는 realm 속성을 사용하여 JSON 오브젝트를 에코합니다.
JSON 오브젝트를 파일에 출력하려면 > 및 출력 파일 이름을 사용합니다.
5.9.1.5. 영역 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역을 설정하려면 realm set 명령을 실행하고 입력 파일 이름으로 영역 이름을 지정하고 --infile= 을 지정합니다.
구문
radosgw-admin realm set --rgw-realm=REALM_NAME --infile=IN_FILENAME
radosgw-admin realm set --rgw-realm=REALM_NAME --infile=IN_FILENAME
예제
[ceph: root@host01 /]# radosgw-admin realm set --rgw-realm=test_realm --infile=filename.json
[ceph: root@host01 /]# radosgw-admin realm set --rgw-realm=test_realm --infile=filename.json
5.9.1.6. 영역 나열 링크 복사링크가 클립보드에 복사되었습니다!
realms를 나열하려면 realm list 명령을 실행합니다.
예제
[ceph: root@host01 /]# radosgw-admin realm list
[ceph: root@host01 /]# radosgw-admin realm list
5.9.1.7. Cryostat 기간 나열 링크 복사링크가 클립보드에 복사되었습니다!
영역 기간을 나열하려면 realm list-periods 명령을 실행합니다.
예제
[ceph: root@host01 /]# radosgw-admin realm list-periods
[ceph: root@host01 /]# radosgw-admin realm list-periods
5.9.1.8. pulling a Cryostat 링크 복사링크가 클립보드에 복사되었습니다!
마스터 영역 그룹 및 마스터 영역을 포함하는 노드에서 보조 영역 그룹 또는 영역이 포함된 노드로 영역을 가져오려면 영역 구성을 수신할 노드에서 realm pull 명령을 실행합니다.
구문
radosgw-admin realm pull --url=URL_TO_MASTER_ZONE_GATEWAY--access-key=ACCESS_KEY --secret=SECRET_KEY
radosgw-admin realm pull --url=URL_TO_MASTER_ZONE_GATEWAY--access-key=ACCESS_KEY --secret=SECRET_KEY
5.9.1.9. 파일 이름 변경 링크 복사링크가 클립보드에 복사되었습니다!
하나의 영역은 해당 기간의 일부가 아닙니다. 결과적으로 영역 이름 변경은 로컬에만 적용되며 realm pull 으로 가져오지 않습니다.
영역 이름을 여러 영역으로 변경할 때 각 영역에서 명령을 실행합니다.
프로세스
영역의 이름을 변경합니다.
구문
radosgw-admin realm rename --rgw-realm=REALM_NAME --realm-new-name=NEW_REALM_NAME
radosgw-admin realm rename --rgw-realm=REALM_NAME --realm-new-name=NEW_REALM_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고name매개변수를 변경하는 데realm 세트를사용하지 마십시오. 내부 이름만 변경합니다.--rgw-realm을 지정하면 이전 영역 이름이 계속 사용됩니다.예제
[ceph: root@host01 /]# radosgw-admin realm rename --rgw-realm=test_realm --realm-new-name=test_realm2
[ceph: root@host01 /]# radosgw-admin realm rename --rgw-realm=test_realm --realm-new-name=test_realm2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.2. 영역 그룹 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 영역 그룹의 개념을 사용하여 다중 사이트 배포 및 글로벌 네임스페이스를 지원합니다. 이전에는 리전이라고 하는 영역 그룹은 하나 이상의 영역 내에서 하나 이상의 Ceph Object Gateway 인스턴스의 지리적 위치를 정의합니다.
일부 설정이 Ceph 구성 파일에서 끝나지 않기 때문에 영역 그룹 구성은 일반적인 구성 절차와 다릅니다. 영역 그룹을 나열하고, 영역 그룹 구성을 가져오고, 영역 그룹 구성을 설정할 수 있습니다.
기간 업데이트 단계가 클러스터 전체에서 변경 사항을 전파하기 때문에 radosgw-admin zonegroup 작업은 영역 내의 모든 노드에서 수행할 수 있습니다. 그러나 radosgw-admin 영역 작업은 영역 내의 호스트에서 수행해야 합니다.
5.9.2.1. 영역 그룹 생성 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹을 생성하는 것은 영역 그룹 이름을 지정하는 것으로 구성됩니다. 영역 생성은 --rgw-realm=realM_NAME 이 지정되지 않은 경우 기본 영역에 있다고 가정합니다. zonegroup이 마스터 영역 그룹인 경우 --master 플래그를 지정합니다.
데이터 및 메타데이터가 default.rgw.data 및 default.rgw. index 풀에 저장된 경우 플래그를 사용하여 영역 그룹을 생성하지 마십시오. 새 영역 그룹이 기본값으로 설정되고 이러한 풀에 중요한 데이터가 포함된 경우 --default radosgw-admin 유틸리티에서 이 데이터를 올바르게 관리하지 못할 수 있습니다.
필요한 경우 영역 그룹을 기본값으로 지정하고 default.rgw 풀에 기존 데이터 또는 메타데이터가 필요하지 않은 경우에만 --default 플래그를 사용합니다. 기존 데이터 또는 메타데이터가 필요한 경우 기본 구성을 다중 사이트 또는 영역 그룹 설정으로 마이그레이션하거나 새 영역 그룹을 기본값으로 설정하지 않습니다. 다중 사이트로 마이그레이션하는 방법에 대한 자세한 내용은 단일 사이트 시스템을 다중 사이트로 마이그레이션 을 참조하십시오. --default 를 지정하면 --rgw-zonegroup 및 영역 그룹 이름이 명시적으로 제공되지 않는 한 각 radosgw-admin 호출을 사용하여 영역 그룹을 암시적으로 호출합니다.
프로세스
영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME [--rgw-realm=REALM_NAME] [--master]
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME [--rgw-realm=REALM_NAME] [--master]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=zonegroup1 --rgw-realm=test_realm --default
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=zonegroup1 --rgw-realm=test_realm --defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 영역 그룹 설정을 변경합니다.
구문
zonegroup modify --rgw-zonegroup=ZONE_GROUP_NAME
zonegroup modify --rgw-zonegroup=ZONE_GROUP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup modify --rgw-zonegroup=zonegroup1
[ceph: root@host01 /]# radosgw-admin zonegroup modify --rgw-zonegroup=zonegroup1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본 영역 그룹을 변경합니다.
구문
radosgw-admin zonegroup default --rgw-zonegroup=ZONE_GROUP_NAME
radosgw-admin zonegroup default --rgw-zonegroup=ZONE_GROUP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup default --rgw-zonegroup=zonegroup2
[ceph: root@host01 /]# radosgw-admin zonegroup default --rgw-zonegroup=zonegroup2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.2.2. 영역 그룹을 기본값으로 설정 링크 복사링크가 클립보드에 복사되었습니다!
zonegroups 목록에 있는 하나의 zonegroup은 기본 zonegroup이어야 합니다. 하나의 기본 영역 그룹만 있을 수 있습니다. zonegroup이 하나만 있고 기본 zonegroup이 생성되면 기본 zonegroup으로 지정되지 않은 경우 기본 zonegroup으로 만듭니다. 또는 기본값인 zonegroup을 변경하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# radosgw-admin zonegroup default --rgw-zonegroup=us
[ceph: root@host01 /]# radosgw-admin zonegroup default --rgw-zonegroup=us
zonegroup이 기본값인 경우 명령줄은 --rgw-zonegroup=ZONE_GROUP_NAME 을 인수로 가정합니다.
그런 다음 기간을 업데이트합니다.
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.2.3. 영역 그룹에 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹에 영역을 추가하려면 영역에 있을 호스트에서 이 명령을 실행해야 합니다. 영역 그룹에 영역을 추가하려면 다음 명령을 실행합니다.
구문
radosgw-admin zonegroup add --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
radosgw-admin zonegroup add --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
그런 다음 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.2.4. 영역 그룹에서 영역 제거 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹에서 영역을 제거하려면 다음 명령을 실행합니다.
구문
radosgw-admin zonegroup remove --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
radosgw-admin zonegroup remove --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
그런 다음 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.2.5. 영역 그룹 이름 변경 링크 복사링크가 클립보드에 복사되었습니다!
zonegroup의 이름을 변경하려면 다음 명령을 실행합니다.
구문
radosgw-admin zonegroup rename --rgw-zonegroup=ZONE_GROUP_NAME --zonegroup-new-name=NEW_ZONE_GROUP_NAME
radosgw-admin zonegroup rename --rgw-zonegroup=ZONE_GROUP_NAME --zonegroup-new-name=NEW_ZONE_GROUP_NAME
그런 다음 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.2.6. 영역 그룹 삭제 링크 복사링크가 클립보드에 복사되었습니다!
zonegroup을 삭제하려면 다음 명령을 실행합니다.
구문
radosgw-admin zonegroup delete --rgw-zonegroup=ZONE_GROUP_NAME
radosgw-admin zonegroup delete --rgw-zonegroup=ZONE_GROUP_NAME
그런 다음 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.2.7. 영역 그룹 나열 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 클러스터에는 영역 그룹 목록이 포함되어 있습니다. 영역 그룹을 나열하려면 다음 명령을 실행합니다.
[ceph: root@host01 /]# radosgw-admin zonegroup list
[ceph: root@host01 /]# radosgw-admin zonegroup list
radosgw-admin 은 JSON 형식의 영역 그룹 목록을 반환합니다.
5.9.2.8. 영역 그룹 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹의 구성을 보려면 다음 명령을 실행합니다.
구문
radosgw-admin zonegroup get [--rgw-zonegroup=ZONE_GROUP_NAME]
radosgw-admin zonegroup get [--rgw-zonegroup=ZONE_GROUP_NAME]
영역 그룹 구성은 다음과 같습니다.
{ "ID": "abd3004c-9933-4157-a91e-de3fb0584f3e", "name": "shared", "api_name": "shared", "is_master": true, "endpoints": [ "http://pluto003:5000" ], "hostnames": [], "hostnames": [], "hostnames": [], "hostnames_s3website": [], "master_zone": "26a46c38-f7ce-4d97-b356-c251415c062b", "zones": [ { "id": "26a46c38-f7ce-4d97-b356-c251415c062b", "name": "primary", "endpoints": [ "http://pluto003:5000" ], "log_meta": false, "log_data": true, "bucket_index_max_shards": 11, "read_only": "", "tier_type": "", "sync_from_all": true, "redirect_zone": [], "redirect_zone": "", "supported_features": [com-encrypted", [com-encrypted" "resharding" ] }, { "id": "4fa4be7c-4ecd-4a2d-83b4-0e4d5a9d915f", "name": "archive", "endpoints": [ "http://pluto010:5000" ], "log_meta": false, "log_data": true, "bucket_index_max_hards": 11, "READ_ONLY": false, "tier_type": "archive", "sync_from_all": false, "sync_from": [ "primary" ], "redirect_zone": "", "compress-encrypted", "resharding", "resharding" ] }, { "id": "e3792738-60c-403f21", "name": "secondary", "endpoints": [ "http://pluto006:5000" ], "log_meta": false, "log_data": true, "bucket_index_max_shards": 11, "read_only": false, "tier_type": "", "sync_from_all": true, "sync_from_all": true, "sync_from_all": true "redirect_zone": "", "supported_features": [ "compress-encrypted", "resharding" ], "placement_targets": [ { "name": "default-placement", "tags": [], "storage_classes": [ "STANDARD" ] } ], "default_placement": "default-placement", "default_placement": "default-placement", } ] "realm_id": "2b7aa9ac-17cb-4a3e-9119-9065368cd3a8", "sync_policy": { "groups": [] }, "enabled_features": [resharding" ] }
| 필드 | 설명 |
| id | 영역 그룹에 할당된 고유한 문자열입니다. |
| name | 영역 그룹의 이름입니다. |
| api_name | 서로 다른 영역에서 데이터 복제에 사용되는 RADOS API의 이름입니다. 일반적으로 다르게 지정하지 않는 한 "name" 필드와 동일합니다. |
| is_master | 영역 그룹이 master인 경우 true이고, 그렇지 않으면 false입니다. 다중 사이트 구성에 여러 영역 그룹이 있을 수 있습니다. |
| 끝점 | 영역 group.configuration 중에 지정된 끝점입니다. |
| 호스트 이름 | 지정할 선택적 필드입니다. 호스트 이름. |
| hostnames_s3website | S3. website의 호스트 이름입니다. |
| master_zone | 영역 생성 중에 --master 매개변수를 사용하여 메타데이터 마스터로 지정된 영역입니다. |
| 영역 | 영역 그룹 내에서 동기화되는 영역 목록입니다. |
| log_meta | 메타데이터 로깅을 켜거나 해제하는 선택적 매개변수입니다. |
| log_data | 데이터 로깅을 켜거나 끄는 선택적 매개변수입니다. |
| bucket_index_max_shards | 영역에 저장된 새로 생성된 버킷의 기본 버킷 수입니다. |
| read_only | 기본적으로 false(읽기-쓰기 영역); 영역이 읽기 전용으로 명시적으로 구성된 경우 true입니다. |
| tier_type | 아카이브 영역, Elasticsearch, pub/sub 또는 클라우드 동기화 모듈과 같은 동기화 모듈 계층 유형으로 구성된 영역입니다. |
| sync_from_all | 영역 그룹의 다른 모든 영역에서 영역을 동기화할 때 기본적으로 true입니다. 영역이 "sync_from" 필드에 지정된 하나 또는 몇 개의 영역에서만 동기화하려는 경우 false입니다. |
| sync_from | 동기화할 하나 이상의 영역 이름 목록입니다. |
| supported_features | 압축/암호화, 재하드 등과 같은 영역에서 사용할 수 있는 기능 목록입니다. |
| placement_targets | 버킷 인덱스 풀, 스토리지 클래스 등을 포함한 기본 및 사용자 정의 배치 정보를 표시합니다. |
| sync_policy | 있는 경우 동기화 정책 구성 정보입니다. |
| enabled_features | 영역에서 활성화된 기능(예: 압축/암호화, 재하드 등) |
5.9.2.9. 영역 그룹 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹을 정의하는 것은 필요한 설정을 지정하여 JSON 오브젝트를 생성하는 것으로 구성됩니다.
-
name: 영역 그룹의 이름입니다. 필수 항목입니다. -
api_name: 영역 그룹의 API 이름입니다. 선택 사항: is_master: 영역 그룹이 마스터 영역 그룹인지 여부를 결정합니다. 필수 항목입니다.참고: 하나의 마스터 영역 그룹만 있을 수 있습니다.
-
끝점: 영역 그룹의 모든 끝점 목록입니다. 예를 들어 동일한 영역 그룹을 참조하기 위해 여러 도메인 이름을 사용할 수 있습니다. 슬래시(\/)를 이스케이프해야 합니다. 각 끝점에 대해 포트(fqdn:port)를 지정할 수도 있습니다. 선택 사항: -
hostnames: 영역 그룹의 모든 호스트 이름 목록입니다. 예를 들어 동일한 영역 그룹을 참조하기 위해 여러 도메인 이름을 사용할 수 있습니다. 선택 사항:rgw dns name설정이 이 목록에 자동으로 포함됩니다. 이 설정을 변경한 후 게이트웨이 데몬을 다시 시작해야 합니다. master_zone: 영역 그룹의 마스터 영역입니다. 선택 사항: 지정하지 않는 경우 기본 영역을 사용합니다.참고영역 그룹당 하나의 마스터 영역만 있을 수 있습니다.
-
zones: 영역 그룹 내의 모든 영역 목록입니다. 각 영역에는 이름(필수), 끝점 목록(선택 사항)이 있으며 게이트웨이에서 메타데이터 및 데이터 작업(기본적으로 false)을 기록합니다. -
placement_targets: 배치 대상 목록(선택 사항). 각 배치 대상에는 배치 대상의 이름(필수)과 태그 목록(선택 사항)이 포함되어 있으므로 태그가 있는 사용자만 배치 대상(즉, 사용자 정보에서 사용자의placement_tags필드)을 사용할 수 있습니다. -
default_placement: 오브젝트 인덱스 및 오브젝트 데이터의 기본 배치 대상입니다.기본적으로 default로설정합니다. 각 사용자의 사용자 정보에 사용자 기본 배치를 설정할 수도 있습니다.
영역 그룹을 설정하려면 필수 필드로 구성된 JSON 오브젝트를 생성하고 오브젝트를 파일에 저장합니다(예: zonegroup.json ). 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# radosgw-admin zonegroup set --infile zonegroup.json
[ceph: root@host01 /]# radosgw-admin zonegroup set --infile zonegroup.json
여기서 zonegroup.json 은 사용자가 생성한 JSON 파일입니다.
기본 영역 그룹 is_master 설정은 기본적으로 true 입니다. 새 영역 그룹을 생성하고 마스터 영역 그룹을 만들려면 기본 영역 그룹 is_master 설정을 false 로 설정하거나 기본 영역 그룹을 삭제해야 합니다.
마지막으로 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.2.10. 영역 그룹 맵 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹 맵을 설정하면 하나 이상의 영역 그룹으로 구성된 JSON 오브젝트를 생성하고 클러스터의 master_zonegroup 을 설정하는 것으로 구성됩니다. 영역 그룹 맵의 각 영역 그룹은 키/값 쌍으로 구성됩니다. 여기서 키 설정은 개별 영역 그룹 구성의 name 설정과 동일하며 val 은 개별 영역 그룹 구성으로 구성된 JSON 오브젝트입니다.
is_master 가 true 인 하나의 영역 그룹만 있을 수 있으며 영역 그룹 맵 끝에 master_zonegroup 으로 지정해야 합니다. 다음 JSON 오브젝트는 기본 영역 그룹 맵의 예입니다.
영역 그룹 맵을 설정하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# radosgw-admin zonegroup-map set --infile zonegroupmap.json
[ceph: root@host01 /]# radosgw-admin zonegroup-map set --infile zonegroupmap.json
여기서 zonegroupmap.json 은 생성한 JSON 파일입니다. 영역 그룹 맵에 지정된 영역에 대해 생성된 영역이 있는지 확인합니다. 마지막으로 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.3. 영역 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 영역의 개념을 지원합니다. 영역은 하나 이상의 Ceph Object Gateway 인스턴스로 구성된 논리 그룹을 정의합니다.
일부 설정이 Ceph 구성 파일에서 끝나지 않기 때문에 영역 구성 절차가 일반적인 구성 절차와 다릅니다. 영역을 나열하고 영역 구성을 가져오고 영역 구성을 설정할 수 있습니다.
모든 radosgw-admin 영역 작업은 작동하거나 영역 내에서 작동할 호스트에서 발행되어야 합니다.
5.9.3.1. 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
영역을 생성하려면 영역 이름을 지정합니다. 마스터 영역인 경우 --master 옵션을 지정합니다. 영역 그룹의 하나의 영역만 마스터 영역이 될 수 있습니다. 영역 그룹에 영역을 추가하려면 zonegroup 이름으로 --rgw-zonegroup 옵션을 지정합니다.
영역 내에 있을 Ceph Object Gateway 노드에서 영역을 생성해야 합니다.
데이터 및 메타데이터가 default.rgw.data 및 default.rgw. index 풀에 저장된 경우 플래그를 사용하여 영역을 생성하지 마십시오. 새 영역이 기본값으로 설정되고 이러한 풀에 중요한 데이터가 포함된 경우 --default radosgw-admin 유틸리티에서 이 데이터를 올바르게 관리하지 못할 수 있습니다.
영역을 기본값으로 지정하고 default.rgw 풀에 기존 데이터 또는 메타데이터가 필요하지 않은 경우에만 --default 플래그를 사용합니다. 기존 데이터 또는 메타데이터가 필요한 경우 기본 구성을 다중 사이트 또는 영역 설정으로 마이그레이션하거나 새 영역을 기본값으로 설정하지 않도록 합니다. 다중 사이트로 마이그레이션하는 방법에 대한 자세한 내용은 단일 사이트 시스템을 다중 사이트로 마이그레이션 을 참조하십시오. --default 를 지정하면 --rgw-zone 및 영역 이름을 명시적으로 제공하지 않는 한 각 radosgw-admin 호출을 사용하여 영역을 암시적으로 호출합니다.
프로세스
영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zone=ZONE_NAME \ [--zonegroup=ZONE_GROUP_NAME]\ [--endpoints=ENDPOINT_PORT [,<endpoint:port>] \ [--master] [--default] \ --access-key ACCESS_KEY --secret SECRET_KEYradosgw-admin zone create --rgw-zone=ZONE_NAME \ [--zonegroup=ZONE_GROUP_NAME]\ [--endpoints=ENDPOINT_PORT [,<endpoint:port>] \ [--master] [--default] \ --access-key ACCESS_KEY --secret SECRET_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.3.2. 영역 삭제 링크 복사링크가 클립보드에 복사되었습니다!
영역을 삭제하려면 먼저 zonegroup에서 제거합니다.
프로세스
zonegroup에서 영역을 제거합니다.
구문
radosgw-admin zonegroup remove --rgw-zonegroup=ZONE_GROUP_NAME\ --rgw-zone=ZONE_NAMEradosgw-admin zonegroup remove --rgw-zonegroup=ZONE_GROUP_NAME\ --rgw-zone=ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역을 삭제합니다.
중요이 절차는 영역 내의 호스트에서 사용해야 합니다.
구문
radosgw-admin zone delete --rgw-zone=ZONE_NAME
radosgw-admin zone delete --rgw-zone=ZONE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요먼저 영역 그룹에서 제거하지 않고 영역을 삭제하지 마십시오. 그렇지 않으면 기간을 업데이트할 수 없습니다.
삭제된 영역의 풀이 다른 위치에서 사용되지 않는 경우 풀을 삭제하는 것이 좋습니다. 아래 예제에서 DELETED_ZONE_NAME 을 삭제된 영역의 이름으로 바꿉니다.
Ceph가 영역 풀을 삭제하면 복구할 수 없는 방식으로 모든 데이터를 삭제합니다. Ceph 클라이언트에 더 이상 풀 콘텐츠가 필요하지 않은 경우에만 영역 풀을 삭제합니다.
multi-realm 클러스터에서 영역 풀과 함께 .rgw.root 풀을 삭제하면 클러스터의 영역 정보가 모두 제거됩니다. 풀을 삭제하기 전에 .rgw.root에 다른 활성 영역이 포함되어 있지 않은지 확인합니다.
.rgw.root
구문
ceph osd pool delete DELETED_ZONE_NAME.rgw.control DELETED_ZONE_NAME.rgw.control --yes-i-really-really-mean-it ceph osd pool delete DELETED_ZONE_NAME.rgw.data.root DELETED_ZONE_NAME.rgw.data.root --yes-i-really-really-mean-it ceph osd pool delete DELETED_ZONE_NAME.rgw.log DELETED_ZONE_NAME.rgw.log --yes-i-really-really-mean-it ceph osd pool delete DELETED_ZONE_NAME.rgw.users.uid DELETED_ZONE_NAME.rgw.users.uid --yes-i-really-really-mean-it
ceph osd pool delete DELETED_ZONE_NAME.rgw.control DELETED_ZONE_NAME.rgw.control --yes-i-really-really-mean-it
ceph osd pool delete DELETED_ZONE_NAME.rgw.data.root DELETED_ZONE_NAME.rgw.data.root --yes-i-really-really-mean-it
ceph osd pool delete DELETED_ZONE_NAME.rgw.log DELETED_ZONE_NAME.rgw.log --yes-i-really-really-mean-it
ceph osd pool delete DELETED_ZONE_NAME.rgw.users.uid DELETED_ZONE_NAME.rgw.users.uid --yes-i-really-really-mean-it
풀을 삭제한 후 RGW 프로세스를 다시 시작합니다.
5.9.3.3. 영역 수정 링크 복사링크가 클립보드에 복사되었습니다!
영역을 수정하려면 영역 이름과 수정할 매개변수를 지정합니다.
영역에 있을 Ceph Object Gateway 노드에서 영역을 수정해야 합니다.
구문
그런 다음 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.3.4. 영역 나열 링크 복사링크가 클립보드에 복사되었습니다!
root 로서 클러스터의 영역을 나열하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# radosgw-admin zone list
[ceph: root@host01 /]# radosgw-admin zone list
5.9.3.5. 영역 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
root 로서 영역 구성을 가져오려면 다음 명령을 실행합니다.
구문
radosgw-admin zone get [--rgw-zone=ZONE_NAME]
radosgw-admin zone get [--rgw-zone=ZONE_NAME]
기본 영역은 다음과 같습니다.
{ "ID": "49408bb1-7e63-4324-b713-3d7778352f2c", "name": "zg1-2", "zg1-2.rgw.meta:root", "control_pool": "zg1-2.rgw.control", "zg1-2.rgw.control", "gc_pool": "zg1-2.rgw.log:gc", "lc_pool": "zg1-2.rgw:lc", "log_pool": "zg1-2.rgw.log", "intent_log_pool": "zg1-2.rgw.log", "zg1-2.rgw.log", "zg1-2.rgw.log", "zg1-2.rgw.log" "usage_log_pool": "zg1-2.rgw.log:usage", "roles_pool": "zg1-2.rgw.meta:roles", "zg1-2.rgw.log:reshard", "user_keys_pool": "zg1-2.rgw.w.meta:keys", "user_email_pool": "zg1-2.rgw.meta:users.email", "user_swift_pool": "zg1-2.rgw.users.swift", "user_uid_pool": "zg1-2.rgw.meta:users.uid", "otp_pool": "zg1-2.rgw.otp", "notif_pool": "zg1-2.rgw.log:notif", "topics_pool": "zg1-2.rgw.meta:topics", "account_pool": "zg1-2.rgw.meta:accounts", "group_pool": "zg1-2.rgw.meta:groups", "system_key": { "access_key": "1234567890", "secret_key": "pencil" }, "placement_pools": [ { "key": "default-placement", "val": { "index_pool": "zg1-2.rgw.buckets.index", "storage_classes": "storage_classes": { "STANDARD": { "data_pool": "zg1-2.rgw.buckets.data" }, "data_extra_pool": "zg1-2.rgw.buckets.non-ec", "index_type": 0, "inline_data": true } ], "realm_id": "7b65ec9b-149d-4200-8bb0-0390565c11e6" }
| 필드 | 설명 |
|---|---|
| id | 영역에 할당된 고유한 문자열입니다. |
| domain_root | 영역과 관련된 모든 시스템 구성이 있는 루트 풀입니다. |
| control_pool | 내부 감시 알림 메커니즘에 사용됩니다. |
| gc_pool | 가비지 컬렉션 풀입니다. |
| lc_pool | 영역 그룹 구성 중에 지정된 끝점입니다. |
| log_pool | 다중 사이트 관련 데이터 로그 및 mdlog는 이 풀에 저장됩니다. |
| usage_log_pool | 사용자 작업에 대한 통계를 누적하는 사용 로깅입니다. |
| roles_pool | 사용자 역할 정보를 저장합니다. |
| reshard_pool | 버킷 재하드 로그 항목을 저장합니다. |
| user_keys_pool | 풀에는 각 사용자 ID의 액세스 키와 시크릿 키가 포함되어 있습니다. |
| user_email_pool | 풀에는 사용자 ID와 연결된 이메일 주소가 포함됩니다. |
| user_swift_pool | pool에는 사용자 ID에 대한 Swift 하위 사용자 정보가 포함됩니다. |
| user_uid_pool | 사용자 ID를 저장합니다. |
| otp_pool | 풀은 다중 요소 인증 관련 정보를 저장합니다. |
| notif_pool | 지속적인 전달 알림 관련 정보입니다. |
| topics_pool | 알림 주제 저장. |
| account_pool | 사용자 계정 관련 정보를 저장합니다. |
| system_key | 다중 사이트 동기화에 내부적으로 사용되는 시스템 액세스 및 시크릿 키를 표시합니다. |
| placement_pools | 버킷 인덱스 풀 스토리지 클래스 등을 포함한 기본 및 사용자 정의 배치 정보를 표시합니다. |
| realm_id | multisite가 구성된 경우 realm id., resharding 등을 표시합니다. |
5.9.3.6. 영역 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역을 구성하려면 일련의 Ceph Object Gateway 풀을 지정해야 합니다. 일관성을 위해 영역 이름과 동일한 풀 접두사를 사용하는 것이 좋습니다. 풀 구성에 대한 자세한 내용은 Red Hat Ceph Storage Storage Strategies Guide 의 풀 장을 참조하십시오.
zone은 영역 내에 있을 Ceph Object Gateway 노드에 설정해야 합니다.
영역을 설정하려면 풀로 구성된 JSON 오브젝트를 생성하고 오브젝트를 파일에 저장합니다(예: zone.json;) 다음 명령을 실행하여 ZONE_NAME 을 영역 이름으로 교체합니다.
예제
[ceph: root@host01 /]# radosgw-admin zone set --rgw-zone=test-zone --infile zone.json
[ceph: root@host01 /]# radosgw-admin zone set --rgw-zone=test-zone --infile zone.json
여기서 zone.json 은 사용자가 생성한 JSON 파일입니다.
그런 다음 root 로 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
5.9.3.7. 영역 이름 변경 링크 복사링크가 클립보드에 복사되었습니다!
영역 이름을 변경하려면 영역 이름과 새 영역 이름을 지정합니다. 영역 내의 호스트에서 다음 명령을 실행합니다.
구문
radosgw-admin zone rename --rgw-zone=ZONE_NAME --zone-new-name=NEW_ZONE_NAME
radosgw-admin zone rename --rgw-zone=ZONE_NAME --zone-new-name=NEW_ZONE_NAME
그런 다음 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commit
6장. 고급 구성 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway의 고급 기능 일부를 구성할 수 있습니다. 다중 사이트 Ceph Object Gateway를 구성하고 이를 Microsoft Active Directory 및 OpenStack Keystone 서비스와 같은 디렉터리 서비스와 통합할 수 있습니다.
사전 요구 사항
- 정상 실행 Red Hat Ceph Storage 클러스터.
6.1. LDAP 및 Ceph Object Gateway 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 사용자를 인증하도록 Red Hat Directory Server를 구성하려면 다음 단계를 수행합니다.
6.1.1. Red Hat Directory Server 설치 링크 복사링크가 클립보드에 복사되었습니다!
Java Swing GUI 디렉터리 및 관리 콘솔을 사용하려면 GUI(그래픽 사용자 인터페이스)가 있는 Red Hat Enterprise Linux 9에 Red Hat Directory Server를 설치해야 합니다. 그러나 Red Hat Directory Server는 명령행 인터페이스(CLI)에서만 서비스를 제공할 수 있습니다.
사전 요구 사항
- RHEL(Red Hat Enterprise Linux)이 서버에 설치되어 있습니다.
-
Directory Server 노드의 FQDN은 DNS 또는
/etc/hosts파일을 사용하여 확인할 수 있습니다. - Directory Server 노드를 Red Hat 서브스크립션 관리 서비스에 등록합니다.
- Red Hat 계정에서 유효한 Red Hat Directory Server 서브스크립션을 사용할 수 있습니다.
6.1.2. Directory Server 방화벽 구성 링크 복사링크가 클립보드에 복사되었습니다!
LDAP 호스트에서 LDAP 클라이언트가 디렉터리 서버에 액세스할 수 있도록 방화벽에서 디렉터리 서버의 보안(636) 포트에 액세스할 수 있는지 확인합니다. 기본 비보안 포트 (389)를 종료한 상태로 둡니다.
firewall-cmd --zone=public --add-port=636/tcp firewall-cmd --zone=public --add-port=636/tcp --permanent
# firewall-cmd --zone=public --add-port=636/tcp
# firewall-cmd --zone=public --add-port=636/tcp --permanent
6.1.3. SELinux의 레이블 포트 링크 복사링크가 클립보드에 복사되었습니다!
SELinux가 요청을 차단하지 않도록 하려면 SELinux의 포트에 레이블을 지정합니다. 자세한 내용은 Red Hat Directory Server 10 관리 가이드의 디렉터리 서버 포트 번호 변경 섹션을 참조하십시오.
6.1.4. LDAPS 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 간단한 ID와 암호를 사용하여 LDAP 서버로 인증하므로 연결에 LDAP에 대한 SSL 인증서가 필요합니다. LDAP용 Directory Server를 구성하려면 Red Hat Directory Server 11 관리 가이드 의 보안 연결 구성 장을 참조하십시오.
LDAP가 작동되면 디렉터리 서버의 인증서를 신뢰하도록 Ceph Object Gateway 서버를 구성합니다.
- LDAP 서버의 SSL 인증서에 서명한 CA(인증 기관)의 PEM 형식의 인증서를 추출/ 다운로드합니다.
-
/etc/openldap/ldap.conf에TLS_REQCERT가 설정되어 있지 않은지 확인합니다. -
/etc/openldap/ldap.conf에TLS_CACERTDIR /etc/openldap/certs설정이 포함되어 있는지 확인합니다. certutil명령을 사용하여 AD CA를/etc/openldap/certs의 저장소에 추가합니다.예를 들어 CA가 "msad-frog-MSAD-FROG-CA"이고 PEM 형식의 CA 파일이ldap.pem인 경우 다음 명령을 사용합니다.예제
certutil -d /etc/openldap/certs -A -t "TC,," -n "msad-frog-MSAD-FROG-CA" -i /path/to/ldap.pem
# certutil -d /etc/openldap/certs -A -t "TC,," -n "msad-frog-MSAD-FROG-CA" -i /path/to/ldap.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 원격 LDAP 사이트에서 SELinux를 업데이트합니다.
예제
setsebool -P httpd_can_network_connect on
# setsebool -P httpd_can_network_connect onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고SELinux가 허용 모드에 있는 경우에도 이 설정을 설정해야 합니다.
인증서 데이터베이스
를세계로 읽을 수 있도록 설정합니다.예제
chmod 644 /etc/openldap/certs/*
# chmod 644 /etc/openldap/certs/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow root가 아닌 사용자로 "ldapwhoami" 명령을 사용하여 서버에 연결합니다.
예제
ldapwhoami -H ldaps://rh-directory-server.example.com -d 9
$ ldapwhoami -H ldaps://rh-directory-server.example.com -d 9Copy to Clipboard Copied! Toggle word wrap Toggle overflow d 9옵션은 SSL 협상에 문제가 발생한 경우 디버깅 정보를 제공합니다.
6.1.5. gateway 사용자가 있는지 확인합니다. 링크 복사링크가 클립보드에 복사되었습니다!
gateway 사용자를 만들기 전에 Ceph Object Gateway에 사용자가 없는지 확인합니다.
예제
[ceph: root@host01 /]# radosgw-admin metadata list user
[ceph: root@host01 /]# radosgw-admin metadata list user
사용자 이름은 이 사용자 목록에 없어야 합니다.
6.1.6. 게이트웨이 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
사용자 LDAP에 Ceph Object Gateway 사용자를 만듭니다.
프로세스
-
Ceph Object Gateway에 대한 LDAP 사용자를 만들고
binddn을 기록합니다. Ceph 개체 게이트웨이는ceph사용자를 사용하므로 사용자 이름으로ceph를 사용하는 것이 좋습니다. 사용자에게 디렉터리를 검색할 수 있는 권한이 있어야 합니다. Ceph Object Gateway는rgw_ldap_binddn에 지정된 대로 이 사용자에게 바인딩합니다. 사용자 생성이 작동하는지 테스트합니다. 여기서
ceph는People의 사용자 ID이고example.com은 도메인이므로 사용자를 검색할 수 있습니다.ldapsearch -x -D "uid=ceph,ou=People,dc=example,dc=com" -W -H ldaps://example.com -b "ou=People,dc=example,dc=com" -s sub 'uid=ceph'
# ldapsearch -x -D "uid=ceph,ou=People,dc=example,dc=com" -W -H ldaps://example.com -b "ou=People,dc=example,dc=com" -s sub 'uid=ceph'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
각 게이트웨이 노드에서 사용자 시크릿에 대한 파일을 생성합니다. 예를 들어 시크릿은
/etc/bindpass가 부여된 파일에 저장할 수 있습니다. 보안을 위해 이 파일의 소유자를ceph사용자 및 그룹으로 변경하여 전역에서 읽을 수 없도록 합니다. rgw_ldap_secret옵션을 추가합니다.구문
ceph config set client.rgw OPTION VALUE
ceph config set client.rgw OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_secret /etc/bindpass
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_secret /etc/bindpassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 바인딩 암호 파일을 Ceph Object Gateway 컨테이너에 패치하고 Ceph Object Gateway 사양을 다시 적용합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고/etc/bindpass는 Red Hat Ceph Storage에서 자동으로 제공되지 않으며 가능한 모든 Ceph Object Gateway 인스턴스 노드에서 콘텐츠를 사용할 수 있는지 확인해야 합니다.
6.1.7. LDAP를 사용하도록 게이트웨이 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 Ceph 노드에서 다음 명령을 사용하여 Ceph 구성을 변경합니다.
구문
ceph config set client.rgw OPTION VALUE
ceph config set client.rgw OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_uri ldaps://:636 [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_binddn "ou=poc,dc=example,dc=local" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_searchdn "ou=poc,dc=example,dc=local" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_dnattr "uid" [ceph: root@host01 /]# ceph config set client.rgw rgw_s3_auth_use_ldap true
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_uri ldaps://:636 [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_binddn "ou=poc,dc=example,dc=local" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_searchdn "ou=poc,dc=example,dc=local" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_dnattr "uid" [ceph: root@host01 /]# ceph config set client.rgw rgw_s3_auth_use_ldap trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.8. 사용자 정의 검색 필터 사용 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 검색 필터를 생성하여 rgw_ldap_searchfilter 설정을 사용하여 사용자 액세스를 제한할 수 있습니다. rgw_ldap_searchfilter 설정을 사용하는 방법은 다음 두 가지가 있습니다.
부분 필터 지정:
예제
"objectclass=inetorgperson"
"objectclass=inetorgperson"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway는 토큰에서 사용자 이름과
rgw_ldap_dnattr값을 사용하여 검색 필터를 생성합니다. 그런 다음 생성된 필터가rgw_ldap_searchfilter값의 부분 필터와 결합됩니다. 예를 들어 사용자 이름 및 설정은 최종 검색 필터를 생성합니다.예제
"(&(uid=joe)(objectclass=inetorgperson))"
"(&(uid=joe)(objectclass=inetorgperson))"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자
joe는 LDAP 디렉터리에 개체 클래스가 있는 경우에만 액세스 권한이 부여되며 유효한 암호를 지정합니다.전체 필터 지정:
전체 필터에는 인증 시도 중에 사용자 이름으로 대체되는
USERNAME토큰이 포함되어야 합니다. 이 경우rgw_ldap_dnattr설정은 사용되지 않습니다. 예를 들어 유효한 사용자를 특정 그룹으로 제한하려면 다음 필터를 사용합니다.예제
"(&(uid=@USERNAME@)(memberOf=cn=ceph-users,ou=groups,dc=mycompany,dc=com))"
"(&(uid=@USERNAME@)(memberOf=cn=ceph-users,ou=groups,dc=mycompany,dc=com))"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.9. LDAP 서버에 S3 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
LDAP 서버의 관리 콘솔에서 S3 클라이언트에서 LDAP 사용자 자격 증명을 사용할 수 있도록 하나 이상의 S3 사용자를 생성합니다. 인증 정보를 S3 클라이언트에 전달할 때 사용할 사용자 이름과 시크릿을 기록해 둡니다.
6.1.10. LDAP 토큰 내보내기 링크 복사링크가 클립보드에 복사되었습니다!
LDAP를 사용하여 Ceph Object Gateway를 실행하는 경우 액세스 토큰이 모두 필요합니다. 그러나 액세스 토큰은 액세스 키 및 시크릿 키에서 생성됩니다. 액세스 키와 시크릿 키를 LDAP 토큰으로 내보냅니다.
액세스 키를 내보냅니다.
구문
export RGW_ACCESS_KEY_ID="USERNAME"
export RGW_ACCESS_KEY_ID="USERNAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시크릿 키를 내보냅니다.
구문
export RGW_SECRET_ACCESS_KEY="PASSWORD"
export RGW_SECRET_ACCESS_KEY="PASSWORD"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 토큰을 내보냅니다. LDAP의 경우
ldap를 토큰 유형(ttype)으로 사용합니다.예제
radosgw-token --encode --ttype=ldap
radosgw-token --encode --ttype=ldapCopy to Clipboard Copied! Toggle word wrap Toggle overflow Active Directory의 경우
ad를 토큰 유형으로 사용합니다.예제
radosgw-token --encode --ttype=ad
radosgw-token --encode --ttype=adCopy to Clipboard Copied! Toggle word wrap Toggle overflow 결과적으로 액세스 토큰인 base-64로 인코딩된 문자열이 생성됩니다. 액세스 키 대신 S3 클라이언트에 이 액세스 토큰을 제공합니다. 시크릿 키는 더 이상 필요하지 않습니다.
선택 사항: 추가 편의를 위해 S3 클라이언트에서 환경 변수를 사용하는 경우 base-64로 인코딩된 문자열을
RGW_ACCESS_KEY_ID환경 변수로 내보냅니다.예제
export RGW_ACCESS_KEY_ID="ewogICAgIlJHV19UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAibGRhcCIsCiAgICAgICAgImlkIjogImNlcGgiLAogICAgICAgICJrZXkiOiAiODAwI0dvcmlsbGEiCiAgICB9Cn0K"
export RGW_ACCESS_KEY_ID="ewogICAgIlJHV19UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAibGRhcCIsCiAgICAgICAgImlkIjogImNlcGgiLAogICAgICAgICJrZXkiOiAiODAwI0dvcmlsbGEiCiAgICB9Cn0K"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.11. S3 클라이언트로 구성 테스트 링크 복사링크가 클립보드에 복사되었습니다!
Python Boto와 같은 스크립트를 사용하여 Ceph Object Gateway 클라이언트로 구성을 테스트합니다.
절차.
RGW_ACCESS_KEY_ID환경 변수를 사용하여 Ceph Object Gateway 클라이언트를 구성합니다. 또는 base-64로 인코딩된 문자열을 복사하여 액세스 키로 지정할 수 있습니다. 다음은 구성된 S3 클라이언트의 예입니다.예제
cat .aws/credentials [default] aws_access_key_id = ewogICaGbnjlwe9UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAiYWQiLAogICAgICAgICJpZCI6ICJjZXBoIiwKICAgICAgICAia2V5IjogInBhc3M0Q2VwaCIKICAgIH0KfQo= aws_secret_access_key =
cat .aws/credentials [default] aws_access_key_id = ewogICaGbnjlwe9UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAiYWQiLAogICAgICAgICJpZCI6ICJjZXBoIiwKICAgICAgICAia2V5IjogInBhc3M0Q2VwaCIKICAgIH0KfQo= aws_secret_access_key =Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고시크릿 키는 더 이상 필요하지 않습니다.
aws s3 ls명령을 실행하여 사용자를 확인합니다.예제
aws s3 ls --endpoint http://host03 2023-12-11 17:08:50 mybucket 2023-12-24 14:55:44 mybucket2
[root@host01 ~]# aws s3 ls --endpoint http://host03 2023-12-11 17:08:50 mybucket 2023-12-24 14:55:44 mybucket2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
radosgw-admin 사용자명령을 실행하여 디렉터리의 사용자를 확인할 수도 있습니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2. Active Directory 및 Ceph Object Gateway 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계를 수행하여 Ceph Object Gateway 사용자를 인증하도록 Active Directory 서버를 구성합니다.
6.2.1. Microsoft Active Directory 사용 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway LDAP 인증은 Microsoft Active Directory를 포함하여 간단한 바인딩용으로 구성할 수 있는 모든 LDAP 호환 디렉터리 서비스와 호환됩니다. Active Directory는 Ceph Object Gateway가 rgw_ldap_binddn 설정에 구성된 사용자로 바인딩하고 LDAP를 사용하여 보안을 보장하는 점에서 RH Directory 서버를 사용하는 것과 유사합니다.
Active Directory를 구성하는 프로세스는 기본적으로 LDAP 및 Ceph Object Gateway 구성과 동일하지만 일부 Windows별 사용이 있을 수 있습니다.
6.2.2. LDAPS용 Active Directory 구성 링크 복사링크가 클립보드에 복사되었습니다!
Active Directory LDAP 서버는 기본적으로 LDAP를 사용하도록 구성됩니다. Windows Server 2012 이상에서는 Active Directory 인증서 서비스를 사용할 수 있습니다. Active Directory LDAP와 함께 사용할 SSL 인증서를 생성하고 설치하는 방법은 다음 MS Cryostat 문서: LDAP over SSL (LDAPS) 인증서 를 참조하십시오.
Active Directory 호스트에서 포트 636 이 열려 있는지 확인합니다.
6.2.3. gateway 사용자가 있는지 확인합니다. 링크 복사링크가 클립보드에 복사되었습니다!
gateway 사용자를 만들기 전에 Ceph Object Gateway에 사용자가 없는지 확인합니다.
예제
[ceph: root@host01 /]# radosgw-admin metadata list user
[ceph: root@host01 /]# radosgw-admin metadata list user
사용자 이름은 이 사용자 목록에 없어야 합니다.
6.2.4. 게이트웨이 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
사용자 LDAP에 Ceph Object Gateway 사용자를 만듭니다.
프로세스
-
Ceph Object Gateway에 대한 LDAP 사용자를 만들고
binddn을 기록합니다. Ceph 개체 게이트웨이는ceph사용자를 사용하므로 사용자 이름으로ceph를 사용하는 것이 좋습니다. 사용자에게 디렉터리를 검색할 수 있는 권한이 있어야 합니다. Ceph Object Gateway는rgw_ldap_binddn에 지정된 대로 이 사용자에게 바인딩합니다. 사용자 생성이 작동하는지 테스트합니다. 여기서
ceph는People의 사용자 ID이고example.com은 도메인이므로 사용자를 검색할 수 있습니다.ldapsearch -x -D "uid=ceph,ou=People,dc=example,dc=com" -W -H ldaps://example.com -b "ou=People,dc=example,dc=com" -s sub 'uid=ceph'
# ldapsearch -x -D "uid=ceph,ou=People,dc=example,dc=com" -W -H ldaps://example.com -b "ou=People,dc=example,dc=com" -s sub 'uid=ceph'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
각 게이트웨이 노드에서 사용자 시크릿에 대한 파일을 생성합니다. 예를 들어 시크릿은
/etc/bindpass가 부여된 파일에 저장할 수 있습니다. 보안을 위해 이 파일의 소유자를ceph사용자 및 그룹으로 변경하여 전역에서 읽을 수 없도록 합니다. rgw_ldap_secret옵션을 추가합니다.구문
ceph config set client.rgw OPTION VALUE
ceph config set client.rgw OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_secret /etc/bindpass
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_secret /etc/bindpassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 바인딩 암호 파일을 Ceph Object Gateway 컨테이너에 패치하고 Ceph Object Gateway 사양을 다시 적용합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고/etc/bindpass는 Red Hat Ceph Storage에서 자동으로 제공되지 않으며 가능한 모든 Ceph Object Gateway 인스턴스 노드에서 콘텐츠를 사용할 수 있는지 확인해야 합니다.
6.2.5. Active Directory를 사용하도록 게이트웨이 구성 링크 복사링크가 클립보드에 복사되었습니다!
rgw_ldap_secret설정을 설정한 후 다음 옵션을 추가합니다.구문
ceph config set client.rgw OPTION VALUE
ceph config set client.rgw OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_uri ldaps://_FQDN_:636 [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_binddn "_BINDDN_" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_searchdn "_SEARCHDN_" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_dnattr "cn" [ceph: root@host01 /]# ceph config set client.rgw rgw_s3_auth_use_ldap true
[ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_uri ldaps://_FQDN_:636 [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_binddn "_BINDDN_" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_searchdn "_SEARCHDN_" [ceph: root@host01 /]# ceph config set client.rgw rgw_ldap_dnattr "cn" [ceph: root@host01 /]# ceph config set client.rgw rgw_s3_auth_use_ldap trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_ldap_uri설정의 경우 FQDN 을 LDAP 서버의 정규화된 도메인 이름으로 대체합니다. LDAP 서버가 두 개 이상 있는 경우 각 도메인을 지정합니다.rgw_ldap_binddn설정의 경우 BINDDN 을 bind 도메인으로 대체합니다.example.com도메인과ceph사용자가사용자 및계정아래에 있으면 다음과 같이 표시됩니다.예제
rgw_ldap_binddn "uid=ceph,cn=users,cn=accounts,dc=example,dc=com"
rgw_ldap_binddn "uid=ceph,cn=users,cn=accounts,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_ldap_searchdn설정의 경우 SEARCHDN 을 검색 도메인으로 대체합니다.example.com도메인과 사용자 및계정아래의사용자는다음과 같습니다.rgw_ldap_searchdn "cn=users,cn=accounts,dc=example,dc=com"
rgw_ldap_searchdn "cn=users,cn=accounts,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.6. LDAP 서버에 S3 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
LDAP 서버의 관리 콘솔에서 S3 클라이언트에서 LDAP 사용자 자격 증명을 사용할 수 있도록 하나 이상의 S3 사용자를 생성합니다. 인증 정보를 S3 클라이언트에 전달할 때 사용할 사용자 이름과 시크릿을 기록해 둡니다.
6.2.7. LDAP 토큰 내보내기 링크 복사링크가 클립보드에 복사되었습니다!
LDAP를 사용하여 Ceph Object Gateway를 실행하는 경우 액세스 토큰이 모두 필요합니다. 그러나 액세스 토큰은 액세스 키 및 시크릿 키에서 생성됩니다. 액세스 키와 시크릿 키를 LDAP 토큰으로 내보냅니다.
액세스 키를 내보냅니다.
구문
export RGW_ACCESS_KEY_ID="USERNAME"
export RGW_ACCESS_KEY_ID="USERNAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시크릿 키를 내보냅니다.
구문
export RGW_SECRET_ACCESS_KEY="PASSWORD"
export RGW_SECRET_ACCESS_KEY="PASSWORD"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 토큰을 내보냅니다. LDAP의 경우
ldap를 토큰 유형(ttype)으로 사용합니다.예제
radosgw-token --encode --ttype=ldap
radosgw-token --encode --ttype=ldapCopy to Clipboard Copied! Toggle word wrap Toggle overflow Active Directory의 경우
ad를 토큰 유형으로 사용합니다.예제
radosgw-token --encode --ttype=ad
radosgw-token --encode --ttype=adCopy to Clipboard Copied! Toggle word wrap Toggle overflow 결과적으로 액세스 토큰인 base-64로 인코딩된 문자열이 생성됩니다. 액세스 키 대신 S3 클라이언트에 이 액세스 토큰을 제공합니다. 시크릿 키는 더 이상 필요하지 않습니다.
선택 사항: 추가 편의를 위해 S3 클라이언트에서 환경 변수를 사용하는 경우 base-64로 인코딩된 문자열을
RGW_ACCESS_KEY_ID환경 변수로 내보냅니다.예제
export RGW_ACCESS_KEY_ID="ewogICAgIlJHV19UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAibGRhcCIsCiAgICAgICAgImlkIjogImNlcGgiLAogICAgICAgICJrZXkiOiAiODAwI0dvcmlsbGEiCiAgICB9Cn0K"
export RGW_ACCESS_KEY_ID="ewogICAgIlJHV19UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAibGRhcCIsCiAgICAgICAgImlkIjogImNlcGgiLAogICAgICAgICJrZXkiOiAiODAwI0dvcmlsbGEiCiAgICB9Cn0K"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.8. S3 클라이언트로 구성 테스트 링크 복사링크가 클립보드에 복사되었습니다!
Python Boto와 같은 스크립트를 사용하여 Ceph Object Gateway 클라이언트로 구성을 테스트합니다.
절차.
RGW_ACCESS_KEY_ID환경 변수를 사용하여 Ceph Object Gateway 클라이언트를 구성합니다. 또는 base-64로 인코딩된 문자열을 복사하여 액세스 키로 지정할 수 있습니다. 다음은 구성된 S3 클라이언트의 예입니다.예제
cat .aws/credentials [default] aws_access_key_id = ewogICaGbnjlwe9UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAiYWQiLAogICAgICAgICJpZCI6ICJjZXBoIiwKICAgICAgICAia2V5IjogInBhc3M0Q2VwaCIKICAgIH0KfQo= aws_secret_access_key =
cat .aws/credentials [default] aws_access_key_id = ewogICaGbnjlwe9UT0tFTiI6IHsKICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgInR5cGUiOiAiYWQiLAogICAgICAgICJpZCI6ICJjZXBoIiwKICAgICAgICAia2V5IjogInBhc3M0Q2VwaCIKICAgIH0KfQo= aws_secret_access_key =Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고시크릿 키는 더 이상 필요하지 않습니다.
aws s3 ls명령을 실행하여 사용자를 확인합니다.예제
aws s3 ls --endpoint http://host03 2023-12-11 17:08:50 mybucket 2023-12-24 14:55:44 mybucket2
[root@host01 ~]# aws s3 ls --endpoint http://host03 2023-12-11 17:08:50 mybucket 2023-12-24 14:55:44 mybucket2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
radosgw-admin 사용자명령을 실행하여 디렉터리의 사용자를 확인할 수도 있습니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3. Ceph Object Gateway 및 OpenStack Keystone 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 OpenStack의 Keystone 인증 서비스를 사용하여 Ceph Object Gateway를 통해 사용자를 인증할 수 있습니다. Ceph Object Gateway를 구성하려면 먼저 Keystone을 구성해야 합니다. 이렇게 하면 Swift 서비스가 활성화되고 Keystone 서비스가 Ceph Object Gateway를 가리킵니다. 다음으로 Keystone 서비스의 인증 요청을 수락하도록 Ceph Object Gateway를 구성해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat OpenStack Platform 환경.
- 실행 중인 Red Hat Ceph Storage 환경.
- 실행 중인 Ceph Object Gateway 환경.
6.3.1. Keystone 인증의 역할 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Keystone 서비스는 admin,member, reader 의 세 가지 역할을 제공합니다. 이러한 역할은 계층적입니다. admin 역할이 있는 사용자는 멤버 역할의 기능을 상속하고 member 역할이 있는 사용자는 reader 역할의 기능을 상속합니다.
멤버 역할의 읽기 권한은 해당 역할이 속한 프로젝트의 오브젝트에만 적용됩니다.
admin
admin 역할은 특정 범위 내에서 가장 높은 수준의 권한 부여를 위해 예약되어 있습니다. 이는 일반적으로 리소스 또는 API에 대한 모든 생성, 읽기, 업데이트 또는 삭제 작업을 포함합니다.
멤버
member 역할은 기본적으로 직접 사용되지 않습니다. 배포 중에 유연성을 제공하고 관리자에 대한 책임을 줄이는 데 도움이 됩니다.
예를 들어 시스템 멤버가 서비스 및 엔드포인트를 업데이트할 수 있도록 기본 멤버 역할 및 간단한 정책 재정의를 사용하여 배포에 대한 정책을 재정의할 수 있습니다. 이는 admin 과 reader 역할 간의 권한 부여 계층을 제공합니다.
reader
reader 역할은 범위에 관계없이 읽기 전용 작업에 대해 예약되어 있습니다.
reader 를 사용하여 이미지 라이센스 키, 관리 이미지 데이터, 관리 볼륨 메타데이터, 애플리케이션 인증 정보 및 시크릿과 같은 중요한 정보에 액세스하는 경우 의도하지 않게 중요한 정보를 노출할 수 있습니다. 따라서 이러한 리소스를 노출하는 API는 reader 역할의 영향을 신중하게 고려하고 member 및 admin 역할에 대한 액세스를 적절하게 지연해야 합니다.
6.3.2. Keystone 인증 및 Ceph Object Gateway 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Keystone을 사용하여 사용자를 인증하는 조직은 Ceph Object Gateway와 Keystone을 통합할 수 있습니다. Ceph Object Gateway를 사용하면 게이트웨이에서 Keystone 토큰을 수락하고 사용자를 인증하며 해당 Ceph Object Gateway 사용자를 만들 수 있습니다. Keystone에서 토큰을 검증할 때 게이트웨이는 인증된 사용자를 고려합니다.
이점
-
Keystone을 사용하여 사용자에게
admin,member,reader역할 할당. - Ceph Object Gateway에서 자동 사용자 생성
- Keystone으로 사용자 관리.
- Ceph Object Gateway는 Keystone에서 취소된 토큰 목록을 주기적으로 쿼리합니다.
6.3.3. Swift 서비스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway를 구성하기 전에 Swift 서비스가 활성화되고 Ceph Object Gateway를 가리키도록 Keystone을 구성합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 소프트웨어 리포지토리에 액세스합니다.
- OpenStack 컨트롤러 노드에 대한 루트 수준 액세스.
프로세스
Swift 서비스를 생성합니다.
openstack service create --name=swift --description="Swift Service" object-store
[root@swift~]# openstack service create --name=swift --description="Swift Service" object-storeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 생성하면 서비스 설정이 에코됩니다.
Expand 표 6.1. 예제 필드 현재의 description
Swift 서비스
enabled
True
id
37c4c0e79571404cb4644201a4a6e5ee
name
swift
type
object-store
6.3.4. Ceph Object Gateway 엔드포인트 설정 링크 복사링크가 클립보드에 복사되었습니다!
Swift 서비스를 생성한 후 서비스를 Ceph Object Gateway를 가리킵니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 소프트웨어 리포지토리에 액세스합니다.
- Red Hat OpenStack Platform 17.0 환경에서 실행 중인 Swift 서비스.
프로세스
Ceph Object Gateway를 가리키는 OpenStack 끝점을 만듭니다.
구문
openstack endpoint create --region REGION_NAME swift admin "URL" openstack endpoint create --region REGION_NAME swift public "URL" openstack endpoint create --region REGION_NAME swift internal "URL"
openstack endpoint create --region REGION_NAME swift admin "URL" openstack endpoint create --region REGION_NAME swift public "URL" openstack endpoint create --region REGION_NAME swift internal "URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow REGION_NAME 을 게이트웨이 영역 그룹 이름 또는 지역 이름의 이름으로 바꿉니다. URL 을 Ceph Object Gateway에 적합한 URL로 바꿉니다.
예제
openstack endpoint create --region us-west swift admin "http://radosgw.example.com:8080/swift/v1" openstack endpoint create --region us-west swift public "http://radosgw.example.com:8080/swift/v1" openstack endpoint create --region us-west swift internal "http://radosgw.example.com:8080/swift/v1"
[root@osp ~]# openstack endpoint create --region us-west swift admin "http://radosgw.example.com:8080/swift/v1" [root@osp ~]# openstack endpoint create --region us-west swift public "http://radosgw.example.com:8080/swift/v1" [root@osp ~]# openstack endpoint create --region us-west swift internal "http://radosgw.example.com:8080/swift/v1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 필드 현재의 adminurl
id
e4249d2b60e44743a67b5e5b38c18dd3internalurl
publicurl
region
us-westservice_id
37c4c0e79571404cb4644201a4a6e5eeservice_name
swiftservice_type
object-store엔드포인트를 설정하면 서비스 엔드포인트 설정이 출력됩니다.
6.3.5. Openstack에서 Ceph Object Gateway 엔드포인트를 사용하고 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Swift 서비스를 생성하고 엔드포인트를 설정한 후 엔드포인트를 표시하여 모든 설정이 올바른지 확인합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 소프트웨어 리포지토리에 액세스합니다.
프로세스
Swift 서비스 아래의 엔드포인트를 나열합니다.
openstack endpoint list --service=swift
[root@swift~]# openstack endpoint list --service=swiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령에 나열된 끝점에 대한 설정을 확인합니다.
구문
openstack endpoint show ENDPOINT_ID
[root@swift~]# openstack endpoint show ENDPOINT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 엔드포인트를 표시하면 엔드포인트 설정 및 서비스 설정이 출력됩니다.
Expand 표 6.2. 예제 필드 현재의 adminurl
enabled
True
id
e4249d2b60e44743a67b5e5b38c18dd3
internalurl
publicurl
region
us-west
service_id
37c4c0e79571404cb4644201a4a6e5ee
service_name
swift
service_type
object-store
추가 리소스
- 엔드포인트에 대한 자세한 내용은 Red Hat OpenStack 가이드의 끝점 표시를 참조하십시오.
6.3.6. Keystone SSL을 사용하도록 Ceph Object Gateway 구성 링크 복사링크가 클립보드에 복사되었습니다!
Keystone에서 사용하는 OpenSSL 인증서를 변환하는 경우 Keystone에서 사용할 Ceph Object Gateway가 구성됩니다. Ceph Object Gateway가 OpenStack의 Keystone 인증과 상호 작용하면 Keystone이 자체 서명된 SSL 인증서로 종료됩니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 소프트웨어 리포지토리에 액세스합니다.
프로세스
OpenSSL 인증서를
nss db형식으로 변환합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 실행하는 노드에 Keystone의 SSL 인증서를 설치합니다. 또는 구성 가능한
rgw_keystone_verify_ssl설정 값을false로 설정합니다.rgw_keystone_verify_ssl을false로 설정하면 게이트웨이가 인증서 확인을 시도하지 않습니다.
6.3.7. Keystone 인증을 사용하도록 Ceph Object Gateway 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack의 Keystone 인증을 사용하도록 Red Hat Ceph Storage를 구성합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 소프트웨어 리포지토리에 액세스합니다.
-
프로덕션 환경에 대한
관리자권한이 있어야 합니다.
프로세스
각 게이트웨이 인스턴스에 대해 다음을 수행합니다.
nss_db_path설정을 NSS 데이터베이스가 저장된 경로로 설정합니다.예제
[ceph: root@host01 /]# ceph config set client.rgw nss_db_path "/var/lib/ceph/radosgw/ceph-rgw.rgw01/nss"
[ceph: root@host01 /]# ceph config set client.rgw nss_db_path "/var/lib/ceph/radosgw/ceph-rgw.rgw01/nss"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
인증 인증 정보를 제공합니다.
시스템 관리자가 OpenStack 서비스를 구성하는 방식과 유사하게 OpenStack ID API의 Keystone 서비스 테넌트, 사용자 및 암호를 구성할 수 있습니다. 사용자 이름과 암호를 제공하면
rgw_keystone_admin_token설정에 공유 시크릿을 제공하지 않습니다.중요Red Hat은 프로덕션 환경에서 관리자 토큰을 통한 인증을 비활성화하는 것이 좋습니다. 서비스 테넌트 자격 증명에는
관리자권한이 있어야 합니다.필요한 구성 옵션은 다음과 같습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 사용자는 Keystone
테넌트에매핑됩니다. Keystone 사용자에게는 단일 테넌트보다 다양한 역할이 할당될 수 있습니다. Ceph Object Gateway가 티켓을 받으면 테넌트와 해당 티켓에 할당된 사용자 역할을 확인하고rgw_keystone_accepted_roles구성 가능에 따라 요청을 수락하거나 거부합니다.
6.3.8. Ceph Object Gateway 데몬 다시 시작 링크 복사링크가 클립보드에 복사되었습니다!
활성 구성 변경 사항은 Ceph Object Gateway를 다시 시작해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 소프트웨어 리포지토리에 액세스합니다.
-
프로덕션 환경에 대한
관리자권한입니다.
프로세스
Ceph 구성 파일을 저장하고 각 Ceph 노드에 배포하면 Ceph Object Gateway 인스턴스를 다시 시작합니다.
참고NAME열에 있는ceph orch ps명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7장. 암호화 및 압축을 위한 QAT 가속 링크 복사링크가 클립보드에 복사되었습니다!
Intel QAT(QuickAssist Technology)는 실제 암호화 및 압축 요청을 하드웨어 QuickAssist 가속기에 오프로드하여 확장된 가속화 암호화 및 압축 서비스를 제공할 수 있으며, 이는 이러한 특정 컴퓨팅 집약적 워크로드의 일반 용도 CPU보다 비용 및 전력 측면에서 더 효율적입니다.
QAT는 Red Hat Ceph Storage 7.1(Greenfield 전용)의 새로운 설정에서만 구성할 수 있습니다. QAT Ceph Object Gateway 데몬은 비QAT(일반) Ceph Object Gateway 데몬과 동일한 클러스터에서 구성할 수 없습니다.
Ceph Object Gateway의 하드웨어 가속 압축에는 QAT 장치가 있는 Sapphire 또는 Emerald Rapids Xeon CPU (또는 최신)에 RHEL 9.4가 필요합니다. 자세한 내용은 Intel Ark 를 참조하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object 게이트웨이가 설치되어 있어야 합니다.
'GRUB'는
intel_iommu매개변수를 전달하도록 구성되어 있습니다.grubby --update-kernel=ALL --args="intel_iommu=on"
grubby --update-kernel=ALL --args="intel_iommu=on"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1. QAT 서비스 설정 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 오브젝트를 암호화하고 압축하도록 QAT 서비스를 설정할 수 있습니다.
프로세스
qatlib-service,qatlib,qatzip및qatengine패키지를 설치합니다.dnf install -y qatlib-service qatlib qatzip qatengine
# dnf install -y qatlib-service qatlib qatzip qatengineCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOST의 'QAT' 그룹에 'root'를 추가합니다.
usermod -aG qat root
# usermod -aG qat rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 아래 데이터와 함께 limits.conf 파일이 있는지 확인합니다.
데이터 암호화를 수행하려면 구성 파일에서
ServicesEnabled가asym으로 설정되어 있는지 확인합니다.cat /etc/sysconfig/qat ServicesEnabled=asym POLICY=8
# cat /etc/sysconfig/qat ServicesEnabled=asym POLICY=8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 압축을 수행하려면 구성 파일에서
ServicesEnabled가dc로 설정되어 있는지 확인합니다.cat /etc/sysconfig/qat ServicesEnabled=dc POLICY=8
# cat /etc/sysconfig/qat ServicesEnabled=dc POLICY=8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 암호화 및 압축을 수행하려면 구성 파일에서
ServicesEnabled가대칭설정되어 있는지 확인합니다.dc로cat /etc/sysconfig/qat ServicesEnabled=asym,dc POLICY=8
# cat /etc/sysconfig/qat ServicesEnabled=asym,dc POLICY=8Copy to Clipboard Copied! Toggle word wrap Toggle overflow
아래 데이터로
limits.conf파일을 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow limits.conf파일에서 구성을 활성화합니다.sudo su -l $USER
# sudo su -l $USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow QAT 서비스를 활성화합니다.
systemctl enable qat
# systemctl enable qatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 노드를 재부팅합니다.
systemctl reboot
# systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사양 파일을 생성하고 Ceph Object Gateway의 podman에 추가 인수를 전달합니다.
참고다음 명령을 사용하여 장치 목록을 생성할 수 있습니다.
--device /dev/vfio --device /dev/qat_adf_ctl $(i in
ls /dev/vfio/*) | grep 'dev' | grep -v ':'; echo --device $i;예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2. QAT 기반 암호화 링크 복사링크가 클립보드에 복사되었습니다!
OpenSSL의 QAT 기반 암호화를 사용하여 Ceph Object Gateway에서 오브젝트를 암호화할 수 있습니다.
프로세스
QAT 기반 암호화를 활성화하려면 Ceph 구성 파일을 편집하여 QAT 기반 암호화 플러그인을 사용합니다.
구문
plugin crypto accelerator = crypto_qat
plugin crypto accelerator = crypto_qatCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3. QAT 기반 압축 링크 복사링크가 클립보드에 복사되었습니다!
QAT 가속 툴 클래스를 사용하여 Ceph Object Gateway에서 오브젝트를 압축할 수 있습니다.
프로세스
QAT 기반 압축을 활성화하려면 Ceph 구성 파일을 편집하여 압축에 대한 QAT 지원을 활성화합니다.
구문
qat compressor enabled=true
qat compressor enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8장. 보안 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 스토리지 클러스터 환경을 보호하는 것이 중요합니다. Red Hat Ceph Storage는 Ceph Object Gateway 액세스 지점을 보호하는 암호화 및 키 관리를 제공합니다.
사전 요구 사항
- 정상 실행 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
8.1. SSE(Server-Side Encryption) 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 S3 API(애플리케이션 프로그래밍 인터페이스)에 대해 업로드된 오브젝트의 서버 측 암호화를 지원합니다. 서버 측 암호화는 S3 클라이언트가 암호화되지 않은 형식으로 HTTP를 통해 데이터를 전송하고 Ceph Object Gateway는 해당 데이터를 Red Hat Ceph Storage 클러스터에 암호화된 형식으로 저장합니다.
- Red Hat은 SLO(Dynamic Large Object) 또는 DLO(Dynamic Large Object)의 S3 개체 암호화를 지원하지 않습니다.
-
현재 SSE(Server-Side Encryption) 모드 중 어느 것도
CopyObject에 대한 지원을 구현하지 않았습니다. 현재 개발 중입니다 [BZ#2149450].
서버 측 암호화는 알려진 문제로 인해 다중 사이트 복제와 호환되지 않습니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. 자세한 내용은 알려진 문제-Mult-site Object Gateway 를 참조하십시오.
암호화를 사용하려면 클라이언트 요청이 SSL 연결을 통해 요청을 보내야 합니다. Ceph Object Gateway에서 SSL을 사용하지 않는 한 Red Hat은 클라이언트의 S3 암호화를 지원하지 않습니다. 그러나 테스트를 위해 관리자는 ceph config set client.rgw 명령을 사용하여 rgw_crypt_require_ssl 구성 설정을 false 로 설정한 다음 Ceph Object Gateway 인스턴스를 다시 시작하여 테스트 중에 SSL을 비활성화할 수 있습니다.
프로덕션 환경에서는 SSL을 통해 암호화된 요청을 보내지 못할 수 있습니다. 이러한 경우 서버 측 암호화와 함께 HTTP를 사용하여 요청을 보냅니다.
서버 측 암호화를 사용하여 HTTP를 구성하는 방법에 대한 자세한 내용은 아래의 추가 리소스 섹션을 참조하십시오.
암호화 키 관리를 위한 세 가지 옵션이 있습니다.
고객 제공 키
S3 클라이언트는 고객 제공 키를 사용할 때 암호화된 데이터를 읽거나 쓰기 위한 각 요청과 함께 암호화 키를 전달합니다. 이러한 키를 관리하는 것은 고객의 책임이 있습니다. 고객은 각 오브젝트를 암호화하는 데 사용되는 Ceph Object Gateway를 기억할 수 있어야 합니다.
Ceph Object Gateway는 Amazon SSE-C 사양에 따라 S3 API에서 고객 제공 키 동작을 구현합니다.
고객이 키 관리를 처리하고 S3 클라이언트가 키를 Ceph Object Gateway에 전달하므로 Ceph Object Gateway는 이 암호화 모드를 지원하기 위해 특별한 구성이 필요하지 않습니다.
키 관리 서비스
키 관리 서비스를 사용하는 경우 보안 키 관리 서비스는 키를 저장하고 Ceph Object Gateway는 필요에 따라 데이터를 암호화하거나 암호 해독하는 요청을 처리하기 위해 해당 키를 검색합니다.
Ceph Object Gateway는 Amazon SSE-KMS 사양에 따라 S3 API에서 키 관리 서비스 동작을 구현합니다.
현재 테스트된 유일한 키 관리 구현은 HashiCorp Vault 및 OpenStack Barbican입니다. 그러나 OpenStack Barbican은 기술 프리뷰이며 프로덕션 시스템에서 사용할 수 없습니다.
SSE-S3
SSE-S3을 사용하는 경우 키는 vault에 저장되지만 Ceph에서 자동으로 생성 및 삭제하고 데이터를 암호화하거나 암호 해독하기 위한 요청을 처리하는 데 필요한 대로 검색됩니다.
Ceph Object Gateway는 Amazon SSE-S3 사양에 따라 S3 API에서 SSE-S3 동작을 구현합니다.
8.1.1. 기존 S3 버킷의 기본 암호화 설정 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 기존 Amazon S3 버킷의 기본 암호화를 설정하여 모든 오브젝트가 버킷에 저장될 때 암호화되도록 할 수 있습니다. Bucket Encryption API를 사용하여 Amazon S3 관리 키(SSE-S3) 또는 Amazon KMS 고객 마스터 키(SSE-KMS)를 사용하여 서버 측 암호화를 지원할 수 있습니다.
SSE-KMS는 Red Hat Ceph Storage 5.x가 아닌 Red Hat Ceph Storage 4.x에서만 지원됩니다.
PutBucketEncryption API를 사용하여 기존 Amazon S3 버킷의 기본 암호화를 관리할 수 있습니다. 이 버킷에 업로드된 모든 파일에는 버킷 수준에서 기본 암호화를 정의하여 이 암호화가 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
- AWS CLI 패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.
프로세스
암호화 구성에 대한 JSON 파일을 생성합니다.
예제
vi bucket-encryption.json
[user@client ~]$ vi bucket-encryption.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 암호화 구성 규칙을 파일에 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 기본 암호화를 설정합니다.
구문
aws --endpoint-url=pass:q[_RADOSGW_ENDPOINT_URL_]:pass:q[_PORT_] s3api put-bucket-encryption --bucket pass:q[_BUCKET_NAME_] --server-side-encryption-configuration pass:q[_file://PATH_TO_BUCKET_ENCRYPTION_CONFIGURATION_FILE/BUCKET_ENCRYPTION_CONFIGURATION_FILE.json_]
aws --endpoint-url=pass:q[_RADOSGW_ENDPOINT_URL_]:pass:q[_PORT_] s3api put-bucket-encryption --bucket pass:q[_BUCKET_NAME_] --server-side-encryption-configuration pass:q[_file://PATH_TO_BUCKET_ENCRYPTION_CONFIGURATION_FILE/BUCKET_ENCRYPTION_CONFIGURATION_FILE.json_]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api put-bucket-encryption --bucket testbucket --server-side-encryption-configuration file://bucket-encryption.json
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-encryption --bucket testbucket --server-side-encryption-configuration file://bucket-encryption.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷의 버킷 암호화 구성을 검색합니다.
구문
aws --endpoint-url=pass:q[_RADOSGW_ENDPOINT_URL_]:pass:q[_PORT_] s3api get-bucket-encryption --bucket BUCKET_NAME
aws --endpoint-url=pass:q[_RADOSGW_ENDPOINT_URL_]:pass:q[_PORT_] s3api get-bucket-encryption --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
버킷에 기본 암호화 구성이 없는 경우 get-bucket-encryption 명령은 ServerSideEncryptionConfigurationNotFoundError 를 반환합니다.
8.1.2. 기본 버킷 암호화 삭제 링크 복사링크가 클립보드에 복사되었습니다!
s3api delete-bucket-encryption 명령을 사용하여 지정된 버킷의 기본 버킷 암호화를 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
- AWS CLI 패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.
프로세스
버킷 암호화 구성을 삭제합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-encryption --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-encryption --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api delete-bucket-encryption --bucket testbucket
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api delete-bucket-encryption --bucket testbucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷의 버킷 암호화 구성을 검색합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-encryption --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-encryption --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint=http://host01:80 s3api get-bucket-encryption --bucket testbucket An error occurred (ServerSideEncryptionConfigurationNotFoundError) when calling the GetBucketEncryption operation: The server side encryption configuration was not found
[user@client ~]$ aws --endpoint=http://host01:80 s3api get-bucket-encryption --bucket testbucket An error occurred (ServerSideEncryptionConfigurationNotFoundError) when calling the GetBucketEncryption operation: The server side encryption configuration was not foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2. 서버 측 암호화 요청 링크 복사링크가 클립보드에 복사되었습니다!
프로덕션 환경에서 클라이언트는 프록시를 통해 Ceph Object Gateway에 연결하는 경우가 많습니다. 이 프록시를 여러 Ceph Object Gateway에 연결하므로 로드 밸런서라고 합니다. 클라이언트가 Ceph Object Gateway에 요청을 보내면 로드 밸런서는 해당 요청을 여러 Ceph Object Gateway에 라우팅하여 워크로드를 배포합니다.
이러한 유형의 구성에서는 로드 밸런서와 로드 밸런서와 여러 Ceph Object Gateway 간에 SSL 종료가 발생할 수 있습니다. 통신은 HTTP만 사용하여 수행됩니다. 서버 측 암호화 요청을 수락하도록 Ceph Object Gateway를 설정하려면 서버 측 암호화 구성을 참조하십시오.
8.3. 서버 측 암호화 구성 링크 복사링크가 클립보드에 복사되었습니다!
SSL을 통해 암호화된 요청을 보낼 수 없는 경우 HTTP를 사용하여 Ceph Object Gateway에 요청을 보내도록 서버 측 암호화를 설정할 수 있습니다.
이 절차에서는 HAProxy를 프록시 및 로드 밸런서로 사용합니다.
사전 요구 사항
- 스토리지 클러스터의 모든 노드에 대한 루트 수준 액세스.
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- HAProxy 소프트웨어 설치.
프로세스
haproxy.cfg파일을 편집합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow http프런트 엔드에 액세스할 수 있는 행을 주석 처리하고 대신https프런트 엔드를 사용하도록 HAProxy를 지시하는 지침을 추가합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_trust_forwarded_https옵션을true로 설정합니다.예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_trust_forwarded_https true
[ceph: root@host01 /]# ceph config set client.rgw rgw_trust_forwarded_https trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow HAProxy를 활성화하고 시작합니다.
systemctl enable haproxy systemctl start haproxy
[root@host01 ~]# systemctl enable haproxy [root@host01 ~]# systemctl start haproxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4. HashiCorp Vault 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway와 함께 사용할 수 있도록 HashiCorp Vault에 키, 암호 및 인증서를 안전하게 저장할 수 있습니다. HashiCorp Vault는 Ceph Object Gateway에서 사용하는 서버 측 암호화를 위한 보안 키 관리 서비스를 제공합니다.
기본 워크플로:
- 클라이언트는 오브젝트의 키 ID를 기반으로 Vault에서 시크릿 키 생성을 요청합니다.
- 클라이언트는 오브젝트의 키 ID를 사용하여 오브젝트를 Ceph Object Gateway에 업로드합니다.
- 그런 다음 Ceph Object Gateway는 Vault에서 새로 생성된 시크릿 키를 요청합니다.
- Vault는 시크릿 키를 Ceph Object Gateway에 반환하여 요청에 응답합니다.
- 이제 Ceph Object Gateway에서 새 시크릿 키를 사용하여 오브젝트를 암호화할 수 있습니다.
- 암호화가 완료되면 오브젝트는 Ceph OSD에 저장됩니다.
Red Hat은 이 문서를 고객에게 제공하기 위해 Red Hat 기술 파트너와 협력합니다. 그러나 Red Hat은 이 제품에 대한 지원을 제공하지 않습니다. 이 제품에 대한 기술 지원이 필요한 경우 Hashicorp에 문의하여 지원을 받으십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- HashiCorp Vault 소프트웨어 설치.
8.4.1. Vault용 시크릿 엔진 링크 복사링크가 클립보드에 복사되었습니다!
HashiCorp Vault는 데이터를 생성, 저장 또는 암호화하기 위한 여러 시크릿 엔진을 제공합니다. 애플리케이션 프로그래밍 인터페이스(API)는 해당 데이터에 대한 작업을 요청하는 시크릿 엔진에 데이터 호출을 전송하고, 시크릿 엔진은 해당 작업 요청의 결과를 반환합니다.
Ceph Object Gateway는 HashiCorp Vault 시크릿 엔진 중 두 개를 지원합니다.
- 키/값 버전 2
- 전송
비밀 엔진은 언제든지 구성할 수 있지만 엔진은 동시에 지원되지 않습니다.
키/값 버전 2
키/값 시크릿 엔진은 디스크의 Vault에 임의의 시크릿을 저장합니다. kv 엔진 버전 2에서는 키에 구성 가능한 수의 버전이 있을 수 있습니다. 기본 버전 수는 10입니다. 버전을 삭제해도 기본 데이터는 삭제되지 않지만 데이터가 삭제된 것으로 표시되므로 삭제된 버전을 삭제할 수 있습니다. API 끝점 또는 destroy 명령을 사용하여 버전 데이터를 영구적으로 제거할 수 있습니다. 키의 모든 버전 및 메타데이터를 삭제하려면 metadata 명령 또는 API 끝점을 사용할 수 있습니다. 키 이름은 문자열이어야 하며, 엔진은 명령줄 인터페이스를 사용할 때 문자열이 아닌 값을 문자열로 변환합니다. 문자열이 아닌 값을 유지하려면 JSON 파일을 제공하거나 HTTP 애플리케이션 프로그래밍 인터페이스(API)를 사용합니다.
ACL(액세스 제어 목록) 정책의 경우 키/값 시크릿 엔진은 생성 및 업데이트 기능 간의 차이점을 인식합니다.
전송
Transit 시크릿 엔진은 전송 중 데이터에서 암호화 기능을 수행합니다. Transit 시크릿 엔진은 해시를 생성하고 임의의 바이트의 소스일 수 있으며 데이터에 서명하고 확인할 수도 있습니다. Vault는 Transit 시크릿 엔진을 사용할 때 데이터를 저장하지 않습니다. Transit 비밀 엔진은 동일한 키를 여러 용도로 사용하도록 허용하여 키 파생 기능을 지원합니다. 또한 전송 시크릿 엔진은 주요 버전 관리를 지원합니다. Transit 시크릿 엔진은 이러한 주요 유형을 지원합니다.
aes128-gcm96- 128비트 AES 키와 96비트 nonce가 있는 AES-GCM은 암호화, 암호 해독, 키 파생 및 통합 암호화를 지원합니다.
aes256-gcm96- 256비트 AES 키와 96비트 nonce가 있는 AES-GCM은 암호화, 암호 해독, 키 파생 및 통합 암호화(기본값)를 지원합니다.
chacha20-poly1305- 256비트 키가 있는 CryostatCha20-Poly1305는 암호화, 암호 해독, 키 파생 및 통합 암호화를 지원합니다.
ed25519- Ed25519; 서명, 서명 확인 및 키 파생 지원
ecdsa-p256- P-256 곡선을 사용하는 ECDSA; 서명 및 서명 확인을 지원
ecdsa-p384- P-384 곡선을 사용하는 ECDSA; 서명 및 서명 확인을 지원
ecdsa-p521- P-521; 곡선을 사용하는 ECDSA; 서명 및 서명 확인을 지원
rsa-2048- 2048비트 RSA 키; 암호화, 암호 해독, 서명 확인 지원
rsa-3072- 3072비트 RSA 키; 암호화, 암호 해독, 서명 확인 지원
rsa-4096- 4096비트 RSA 키; 암호화, 암호 해독, 서명 확인 지원
8.4.2. Vault를 위한 인증 링크 복사링크가 클립보드에 복사되었습니다!
H¢Corp Vault는 여러 유형의 인증 메커니즘을 지원합니다. Ceph Object Gateway는 현재 Vault 에이전트 방법을 지원합니다. Ceph Object Gateway는 rgw_crypt_vault_auth 및 rgw_crypt_vault_addr 옵션을 사용하여 HashiCorp Vault 사용을 구성합니다.
Red Hat은 Vault 에이전트를 컨테이너의 인증 방법으로 지원하며 컨테이너에서 토큰 인증 사용은 지원되지 않습니다.
Vault 에이전트
Vault 에이전트는 클라이언트 노드에서 실행되고 토큰 갱신과 함께 클라이언트 측 캐싱을 제공하는 데몬입니다. Vault 에이전트는 일반적으로 Ceph Object Gateway 노드에서 실행됩니다. Vault 에이전트를 실행하고 토큰 파일을 새로 고칩니다. 이 모드에서 Vault 에이전트를 사용하는 경우 파일 시스템 권한을 사용하여 토큰 사용에 대한 액세스 권한을 제한할 수 있습니다. 또한 Vault 에이전트는 필요한 경우 Vault에서 토큰을 추가하고 실제 서버로 전달하기 전에 토큰을 추가할 수 있습니다. Vault 에이전트는 Filesystem에 토큰을 저장할 때와 마찬가지로 토큰 갱신을 계속 처리할 수 있습니다. Ceph Object Gateway가 Vault 에이전트와 연결하는 데 사용하는 네트워크를 보호하는 데 필요합니다(예: Vault 에이전트는 localhost만 수신 대기).
8.4.3. Vault용 네임 스페이스 링크 복사링크가 클립보드에 복사되었습니다!
H¢Corp Vault를 엔터프라이즈 서비스로 사용하면 조직 내에서 팀에서 사용할 수 있는 격리된 네임스페이스에 대한 중앙 집중식 관리가 제공됩니다. 이러한 격리된 네임스페이스 환경을 테넌트 라고 하며 조직 내 팀은 이러한 테넌트 를 사용하여 정책, 시크릿 및 ID를 다른 팀과 분리할 수 있습니다. Vault의 네임스페이스 기능은 단일 인프라 내에서 보안 멀티 테넌시를 지원하는 데 도움이 됩니다.
추가 리소스
- 자세한 내용은 Vault의 프로젝트 사이트에 대한 Vault Enterprise Namespaces 설명서를 참조하십시오.
8.4.4. 전송 엔진 호환성 지원 링크 복사링크가 클립보드에 복사되었습니다!
Transit 엔진을 단순한 키 저장소로 사용한 이전 버전의 Ceph에 대한 호환성 지원이 있습니다. Transit 엔진에서 compat 옵션을 사용하여 호환성 지원을 구성할 수 있습니다. 다음 명령을 사용하여 이전 지원을 비활성화할 수 있습니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit compat=0
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit compat=0
이는 향후 버전의 기본값이며 새 설치에 현재 버전을 사용할 수 있습니다.
현재 버전의 일반 기본값은 다음과 같습니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit compat=1
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit compat=1
이를 통해 새로 생성된 개체에 대해 새 엔진을 사용할 수 있으며 이전 엔진을 이전 개체에 계속 사용할 수 있습니다. 오래된 개체와 새 개체에 액세스하려면 Vault 토큰에 이전 및 새 전송 정책이 모두 있어야 합니다.
다음 명령을 사용하여 이전 엔진만 강제로 사용할 수 있습니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit compat=2
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit compat=2
Vault가 export/encryption-key 로 종료되면 이 모드는 기본적으로 선택됩니다.
client.rgw 옵션을 구성한 후 새 값을 적용하려면 Ceph Object Gateway 데몬을 다시 시작해야 합니다.
8.4.5. Vault에 대한 토큰 정책 생성 링크 복사링크가 클립보드에 복사되었습니다!
토큰 정책은 모든 Vault 토큰에 있는 권한을 지정합니다. 하나의 토큰에 여러 정책이 있을 수 있습니다. 구성에 필요한 정책을 사용해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- HashiCorp Vault 소프트웨어 설치.
- HashiCorp Vault 노드에 대한 루트 수준 액세스.
프로세스
토큰 정책을 생성합니다.
키/값 시크릿 엔진의 경우:
예제
[root@vault ~]# vault policy write rgw-kv-policy -<<EOF path "secret/data/*" { capabilities = ["read"] } EOF[root@vault ~]# vault policy write rgw-kv-policy -<<EOF path "secret/data/*" { capabilities = ["read"] } EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow Transit 엔진의 경우:
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 버전의 Ceph에서 Transit 시크릿 엔진을 사용한 경우 토큰 정책은 다음과 같습니다.
예제
[root@vault ~]# vault policy write old-rgw-transit-policy -<<EOF path "transit/export/encryption-key/*" { capabilities = ["read"] } EOF[root@vault ~]# vault policy write old-rgw-transit-policy -<<EOF path "transit/export/encryption-key/*" { capabilities = ["read"] } EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
SSE-KMS 및 SSE-S3을 모두 사용하는 경우 각각 별도의 컨테이너를 가리켜야 합니다. 별도의 Vault 인스턴스를 사용하거나 일반적인 전송 지점 아래의 전송 인스턴스 또는 다른 분기를 별도로 마운트할 수 있습니다. 별도의 Vault 인스턴스를 사용하지 않는 경우 SSE-KMS 또는 SSE-S3을 가리키며 rgw_crypt_vault_prefix 및 rgw_crypt_sse_s3_vault_prefix 를 사용하여 컨테이너를 분리할 수 있습니다. SSE-KMS 버킷 소유자에 Vault 권한을 부여할 때 SSE-S3 키에 대한 권한을 부여해서는 안 됩니다. Ceph만 SSE-S3 키에 액세스할 수 있어야 합니다.
8.4.6. Vault에서 SSE-KMS를 사용하도록 Ceph Object Gateway 구성 링크 복사링크가 클립보드에 복사되었습니다!
키 관리를 위해 SSE-KMS와 HashiCorp Vault를 사용하도록 Ceph Object Gateway를 구성하려면 암호화 키 저장소로 설정해야 합니다. 현재 Ceph Object Gateway는 두 가지 비밀 엔진과 두 가지 다른 인증 방법을 지원합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
프로세스
ceph config set client.rgw OPTION VALUE명령을 사용하여 암호화 키 저장소로 Vault를 활성화합니다.구문
ceph config set client.rgw rgw_crypt_s3_kms_backend vault
ceph config set client.rgw rgw_crypt_s3_kms_backend vaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 옵션과 값을 추가합니다.
구문
ceph config set client.rgw rgw_crypt_vault_auth agent ceph config set client.rgw rgw_crypt_vault_addr http://VAULT_SERVER:8100
ceph config set client.rgw rgw_crypt_vault_auth agent ceph config set client.rgw rgw_crypt_vault_addr http://VAULT_SERVER:8100Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 사용 사례에 따라 정책을 사용자 지정합니다.
role-id를 가져옵니다.
구문
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .data.role_id > PATH_TO_FILE
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .data.role_id > PATH_TO_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow secret-id를 가져옵니다.
구문
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .data.secret_id > PATH_TO_FILE
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .data.secret_id > PATH_TO_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow Vault 에이전트에 대한 구성을 생성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl을 사용하여 영구 데몬을 실행합니다.
예제
/usr/local/bin/vault agent -config=/usr/local/etc/vault/rgw-agent.hcl
[root@host03 ~]# /usr/local/bin/vault agent -config=/usr/local/etc/vault/rgw-agent.hclCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Vault 에이전트가 실행될 때 토큰 파일은 유효한 토큰으로 채워집니다.
Key/Value 또는 Transit 중 하나인 Vault 시크릿 엔진을 선택합니다.
Key/Value 를 사용하는 경우 다음 행을 추가합니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine kv
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine kvCopy to Clipboard Copied! Toggle word wrap Toggle overflow Transit 을 사용하는 경우 다음 행을 추가합니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transit
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_secret_engine transitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ceph config set client.rgw OPTION VALUE명령을 사용하여 암호화 키를 검색하도록 Vault 네임스페이스를 설정합니다.예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_namespace testnamespace1
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_namespace testnamespace1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 경로 접두사를 설정하여 Ceph Object Gateway에서 Vault에서 암호화 키를 검색하는 위치를 제한합니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_prefix /v1/secret/data
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_prefix /v1/secret/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 내보낼 수 있는 전송 키의 경우 다음과 같이 접두사 경로를 설정합니다.
예제
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_prefix /v1/transit/export/encryption-key
[ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_vault_prefix /v1/transit/export/encryption-keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vault 서버의 도메인 이름이
vault-server라고 가정하면 Ceph Object Gateway는 다음 URL에서 암호화된 전송 키를 가져옵니다.예제
http://vault-server:8200/v1/transit/export/encryption-key
http://vault-server:8200/v1/transit/export/encryption-keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway 데몬을 다시 시작합니다.
스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host03 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host03 /]# ceph orch restart rgw
[ceph: root@host03 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4.7. Vault에서 SSE-S3을 사용하도록 Ceph Object Gateway 구성 링크 복사링크가 클립보드에 복사되었습니다!
키 관리를 위해 SSE-S3에서 HashiCorp Vault를 사용하도록 Ceph Object Gateway를 구성하려면 암호화 키 저장소로 설정해야 합니다. 현재 Ceph Object Gateway는 에이전트 인증 방법만 사용합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시크릿 엔진으로 Vault를 활성화하여 SSE-S3 암호화 키를 검색합니다.
구문
ceph config set client.rgw rgw_crypt_sse_s3_backend vault
ceph config set client.rgw rgw_crypt_sse_s3_backend vaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSE-S3 및 Vault와 함께 사용할 인증 방법을 설정하려면 다음 설정을 구성합니다.
구문
ceph config set client.rgw rgw_crypt_sse_s3_vault_auth agent ceph config set client.rgw rgw_crypt_sse_s3_vault_addr http://VAULT_AGENT:VAULT_AGENT_PORT
ceph config set client.rgw rgw_crypt_sse_s3_vault_auth agent ceph config set client.rgw rgw_crypt_sse_s3_vault_addr http://VAULT_AGENT:VAULT_AGENT_PORTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 ~]# ceph config set client.rgw rgw_crypt_sse_s3_vault_auth agent [ceph: root@host01 ~]# ceph config set client.rgw rgw_crypt_sse_s3_vault_addr http://vaultagent:8100
[ceph: root@host01 ~]# ceph config set client.rgw rgw_crypt_sse_s3_vault_auth agent [ceph: root@host01 ~]# ceph config set client.rgw rgw_crypt_sse_s3_vault_addr http://vaultagent:8100Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 사용 사례에 따라 정책을 사용자 지정하여 Vault 에이전트를 설정합니다.
role-id를 가져옵니다.
구문
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .rgw-ap-role-id > PATH_TO_FILE
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .rgw-ap-role-id > PATH_TO_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow secret-id를 가져옵니다.
구문
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .rgw-ap-secret-id > PATH_TO_FILE
vault read auth/approle/role/rgw-ap/role-id -format=json | \ jq -r .rgw-ap-secret-id > PATH_TO_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow Vault 에이전트에 대한 구성을 생성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl을 사용하여 영구 데몬을 실행합니다.
예제
/usr/local/bin/vault agent -config=/usr/local/etc/vault/rgw-agent.hcl
[root@host01 ~]# /usr/local/bin/vault agent -config=/usr/local/etc/vault/rgw-agent.hclCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Vault 에이전트가 실행될 때 토큰 파일은 유효한 토큰으로 채워집니다.
키/값 또는 Transit 암호화 키를 검색하는 데 사용할 Vault 시크릿 엔진을 설정합니다.
Key/Value 를 사용하는 경우 다음을 설정합니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_secret_engine kv
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_secret_engine kvCopy to Clipboard Copied! Toggle word wrap Toggle overflow Transit 을 사용하는 경우 다음을 설정합니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_secret_engine transit
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_secret_engine transitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
선택 사항: 특정 네임스페이스 내의 Vault에 액세스하도록 Ceph Object Gateway를 구성하여 암호화 키를 검색합니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_namespace company/testnamespace1
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_namespace company/testnamespace1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Vault 네임스페이스를 사용하면 테넌트라는 격리된 환경 내에서 팀을 작동할 수 있습니다. Vault 네임스페이스 기능은 Vault Enterprise 버전에서만 사용할 수 있습니다.
선택 사항: Ceph Object Gateway에서 암호화 키를 검색하는 URL 경로 접두사를 설정하여 Vault 시크릿 공간의 특정 하위 집합에 대한 액세스를 제한합니다.
Key/Value 를 사용하는 경우 다음을 설정합니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_prefix /v1/secret/data
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_prefix /v1/secret/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow Transit 을 사용하는 경우 다음을 설정합니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_prefix /v1/transit
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_prefix /v1/transitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vault 서버의 도메인 이름이
vaultserver라고 가정하면 Ceph Object Gateway는 다음 URL에서 암호화된 전송 키를 가져옵니다.예제
http://vaultserver:8200/v1/transit
http://vaultserver:8200/v1/transitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
선택 사항: 사용자 정의 SSL 인증을 사용하여 Vault로 인증하려면 다음 설정을 구성합니다.
구문
ceph config set client.rgw rgw_crypt_sse_s3_vault_verify_ssl true ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_cacert PATH_TO_CA_CERTIFICATE ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientcert PATH_TO_CLIENT_CERTIFICATE ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientkey PATH_TO_PRIVATE_KEY
ceph config set client.rgw rgw_crypt_sse_s3_vault_verify_ssl true ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_cacert PATH_TO_CA_CERTIFICATE ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientcert PATH_TO_CLIENT_CERTIFICATE ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientkey PATH_TO_PRIVATE_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_verify_ssl true [ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_cacert /etc/ceph/vault.ca [ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientcert /etc/ceph/vault.crt [ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientkey /etc/ceph/vault.key
[ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_verify_ssl true [ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_cacert /etc/ceph/vault.ca [ceph: root@host01 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientcert /etc/ceph/vault.crt [ceph: root@host03 /]# ceph config set client.rgw rgw_crypt_sse_s3_vault_ssl_clientkey /etc/ceph/vault.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 데몬을 다시 시작합니다.
스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4.8. kv 엔진을 사용하여 키 생성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway에서 사용할 키를 생성할 수 있도록 HashiCorp Vault 키/값 시크릿 엔진(kv)을 구성합니다. 시크릿은 kv 시크릿 엔진에 키-값 쌍으로 저장됩니다.
서버 측 암호화 키는 256비트이고 base64 를 사용하여 인코딩되어야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- HashiCorp Vault 소프트웨어 설치.
- HashiCorp Vault 노드에 대한 루트 수준 액세스.
프로세스
키/값 버전 2 시크릿 엔진을 활성화합니다.
예제
vault secrets enable -path secret kv-v2
vault secrets enable -path secret kv-v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 키를 생성합니다.
구문
vault kv put secret/PROJECT_NAME/BUCKET_NAME key=$(openssl rand -base64 32)
vault kv put secret/PROJECT_NAME/BUCKET_NAME key=$(openssl rand -base64 32)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4.9. 전송 엔진을 사용하여 키 생성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway와 함께 사용할 키를 생성할 수 있도록 HashiCorp Vault Transit 시크릿 엔진(Transport )을 구성합니다. Ceph Object Gateway를 사용한 서버 측 암호화에 사용하려면 Transit 시크릿 엔진을 사용하여 키를 생성할 수 있어야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- HashiCorp Vault 소프트웨어 설치.
- HashiCorp Vault 노드에 대한 루트 수준 액세스.
프로세스
Transit 시크릿 엔진을 활성화합니다.
vault secrets enable transit
[root@vault ~]# vault secrets enable transitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 내보내기 가능한 새 키를 생성합니다.
구문
vault write -f transit/keys/BUCKET_NAME exportable=true
vault write -f transit/keys/BUCKET_NAME exportable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
vault write -f transit/keys/mybucketkey exportable=true
[root@vault ~]# vault write -f transit/keys/mybucketkey exportable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기본적으로 위의 명령은
aes256-gcm96유형 키를 생성합니다.키 교체를 활성화합니다.
구문
vault write -f transit/keys/BUCKET_NAME/rotate exportable=true
vault write -f transit/keys/BUCKET_NAME/rotate exportable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
vault write -f transit/keys/mybucketkey/rotate exportable=true
[root@vault ~]# vault write -f transit/keys/mybucketkey/rotate exportable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 키 교체 기간을 지정합니다.
구문
vault write -f transit/keys/BUCKET_NAME/config auto_rotate_period=DURATION
vault write -f transit/keys/BUCKET_NAME/config auto_rotate_period=DURATIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
vault write -f transit/keys/mybucketkey/config auto_rotate_period=30d
[root@vault ~]# vault write -f transit/keys/mybucketkey/config auto_rotate_period=30dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서
30d는 30일 후에 키가 순환되도록 지정합니다. 키 교체 기간을 시간 단위로 지정하려면auto_rotate_period=1h를 사용합니다.1H는 키가 1시간 마다 회전하도록 지정합니다.latest_version값이 증가했는지 확인하여 키 순환이 성공했는지 확인합니다.구문
vault read transit/export/encryption-key/BUCKET_NAME
vault read transit/export/encryption-key/BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
vault read transit/export/encryption-key/mybucketkey
[root@vault ~]# vault read transit/export/encryption-key/mybucketkeyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
키 생성을 확인합니다.
구문
vault read transit/export/encryption-key/BUCKET_NAME/VERSION_NUMBER
vault read transit/export/encryption-key/BUCKET_NAME/VERSION_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고키 버전을 포함한 전체 키 경로를 제공해야 합니다.
8.4.10. AWS 및 Vault를 사용하여 오브젝트 업로드 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway에 오브젝트를 업로드할 때 Ceph Object Gateway는 Vault에서 키를 가져온 다음 오브젝트를 암호화하여 버킷에 저장합니다. 오브젝트 다운로드를 요청하면 Ceph Object Gateway에서 Vault에서 해당 키를 자동으로 검색하고 개체의 암호를 해독합니다. 오브젝트를 업로드하기 위해 Ceph 개체 게이트웨이는 Vault에서 키를 가져온 다음 오브젝트를 암호화하여 버킷에 저장합니다. Ceph Object Gateway는 Vault에서 해당 키를 검색하고 오브젝트 다운로드 요청 시 오브젝트를 암호 해독합니다.
URL은 rgw_crypt_vault_addr 옵션으로 설정된 기본 주소와 rgw_crypt_ vault_prefix 옵션으로 설정된 경로 접두사 를 사용하여 구성됩니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- HashiCorp Vault 소프트웨어 설치.
- Ceph Object Gateway 클라이언트 노드에 액세스합니다.
- AWS(Amazon Web Services)에 액세스합니다.
프로세스
AWS 명령줄 클라이언트를 사용하여 오브젝트를 업로드하고 요청에 SSE(Secure Side Encryption) 키 ID를 제공합니다.
키/값 시크릿 엔진의 경우:
예(SSE-KMS 사용)
aws --endpoint=http://radosgw:8000 s3 cp plaintext.txt s3://mybucket/encrypted.txt --sse=aws:kms --sse-kms-key-id myproject/mybucketkey
[user@client ~]$ aws --endpoint=http://radosgw:8000 s3 cp plaintext.txt s3://mybucket/encrypted.txt --sse=aws:kms --sse-kms-key-id myproject/mybucketkeyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예(SSE-S3)
aws s3api --endpoint http://rgw_host:8080 put-object --bucket my-bucket --key obj1 --body test_file_to_upload --server-side-encryption AES256
[user@client ~]$ aws s3api --endpoint http://rgw_host:8080 put-object --bucket my-bucket --key obj1 --body test_file_to_upload --server-side-encryption AES256Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제에서 Ceph Object Gateway는
http://vault-server:8200/v1/secret/data/myproject/mybucketkey에서 시크릿을 가져옵니다.Transit 엔진의 경우:
예(SSE-KMS 사용)
aws --endpoint=http://radosgw:8000 s3 cp plaintext.txt s3://mybucket/encrypted.txt --sse=aws:kms --sse-kms-key-id mybucketkey
[user@client ~]$ aws --endpoint=http://radosgw:8000 s3 cp plaintext.txt s3://mybucket/encrypted.txt --sse=aws:kms --sse-kms-key-id mybucketkeyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예(SSE-S3)
aws s3api --endpoint http://rgw_host:8080 put-object --bucket my-bucket --key obj1 --body test_file_to_upload --server-side-encryption AES256
[user@client ~]$ aws s3api --endpoint http://rgw_host:8080 put-object --bucket my-bucket --key obj1 --body test_file_to_upload --server-side-encryption AES256Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제에서 Ceph Object Gateway는
http://vaultserver:8200/v1/transit/mybucketkey에서 시크릿을 가져옵니다.
8.5. Ceph Object Gateway 및 다단계 인증 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway 사용자의 시간 기반 TOTP(한 번 암호) 토큰을 관리할 수 있습니다.
8.5.1. 다단계 인증 링크 복사링크가 클립보드에 복사되었습니다!
버킷이 오브젝트 버전 지정에 대해 구성되면 개발자가 삭제 요청에 대해 MFA(다중 인증)를 요구하도록 버킷을 선택적으로 구성할 수 있습니다. MFA를 사용하면 시간 기반 TOTP(한 번 암호) 토큰이 x-amz-mfa 헤더에 키로 전달됩니다. 토큰은 Google Authenticator와 같은 가상 MFA 장치 또는 Gemalto에서 제공하는 것과 같은 하드웨어 MFA 장치로 생성됩니다.
radosgw-admin 을 사용하여 시간 기반 암호 토큰을 사용자에게 할당합니다. 시크릿 시드와 직렬 ID를 설정해야 합니다. radosgw-admin 을 사용하여 토큰을 나열, 제거 및 재동기화할 수도 있습니다.
MFA ID는 사용자 메타데이터에 설정되어 있지만 실제 MFA 암호 구성은 로컬 영역의 OSD에 있으므로 다중 사이트 환경에서는 다른 영역에 다른 토큰을 사용하는 것이 좋습니다.
| 용어 | 설명 |
|---|---|
| TOTP | 시간 기반 일회성 암호. |
| 토큰 직렬 | TOTP 토큰의 ID를 나타내는 문자열입니다. |
| 토큰 시드 | TOTP를 계산하는 데 사용되는 시크릿 시드입니다. 16진수 또는 base32일 수 있습니다. |
| TOTP 초 | TOTP 생성에 사용되는 시간 해상도입니다. |
| TOTP 창 | 토큰을 검증할 때 현재 토큰 전후에 확인되는 TOTP 토큰 수입니다. |
| TOTP 핀 | 특정 시간에 TOTP 토큰의 유효한 값입니다. |
8.5.2. 다단계 인증을 위한 시드 생성 링크 복사링크가 클립보드에 복사되었습니다!
MFA(다중 인증)를 설정하려면 일회성 암호 생성기 및 백엔드 MFA 시스템에서 사용할 시크릿 시드를 생성해야 합니다.
사전 요구 사항
- Linux 시스템.
- 명령줄 쉘에 액세스합니다.
프로세스
urandomLinux 장치 파일에서 30자 시드를 생성하여 쉘 변수SEED에 저장합니다.예제
SEED=$(head -10 /dev/urandom | sha512sum | cut -b 1-30)
[user@host01 ~]$ SEED=$(head -10 /dev/urandom | sha512sum | cut -b 1-30)Copy to Clipboard Copied! Toggle word wrap Toggle overflow SEED변수에서 echo를 실행하여 시드를 출력합니다.예제
echo $SEED 492dedb20cf51d1405ef6a1316017e
[user@host01 ~]$ echo $SEED 492dedb20cf51d1405ef6a1316017eCopy to Clipboard Copied! Toggle word wrap Toggle overflow 동일한 시드를 사용하도록 일회성 암호 생성기 및 백엔드 MFA 시스템을 구성합니다.
8.5.3. 새 다단계 인증 TOTP 토큰 생성 링크 복사링크가 클립보드에 복사되었습니다!
새 MFA(다중 인증) 시간 기반 TOTP(한 번 암호) 토큰을 만듭니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph 모니터 노드에서 root 액세스 권한이 있습니다.
- 일회성 암호 생성기 및 Ceph Object Gateway MFA의 시크릿 시드가 생성되었습니다.
프로세스
새 MFA TOTP 토큰을 생성합니다.
구문
radosgw-admin mfa create --uid=USERID --totp-serial=SERIAL --totp-seed=SEED --totp-seed-type=SEED_TYPE --totp-seconds=TOTP_SECONDS --totp-window=TOTP_WINDOW
radosgw-admin mfa create --uid=USERID --totp-serial=SERIAL --totp-seed=SEED --totp-seed-type=SEED_TYPE --totp-seconds=TOTP_SECONDS --totp-window=TOTP_WINDOWCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름으로 설정하여 MFA를 TOTP 토큰의 ID를 나타내는 문자열로 설정하고 SEED 를 TOTP를 계산하는 데 사용되는 16진수 또는 base32 값으로 설정합니다. 다음 설정은 선택 사항입니다. SEED_TYPE 을
16진수또는base32로 설정하고 TOTP_SECONDS 를 시간 초과로 설정하거나 TOTP_ CryostatDOW 를 TOTP 토큰 수로 설정하여 토큰을 검증할 때 현재 토큰을 확인할 수 있습니다.예제
radosgw-admin mfa create --uid=johndoe --totp-serial=MFAtest --totp-seed=492dedb20cf51d1405ef6a1316017e
[root@host01 ~]# radosgw-admin mfa create --uid=johndoe --totp-serial=MFAtest --totp-seed=492dedb20cf51d1405ef6a1316017eCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5.4. 다단계 인증 TOTP 토큰 테스트 링크 복사링크가 클립보드에 복사되었습니다!
MFA(다중 인증) 시간 기반 TOTP(한 번 암호) 토큰을 테스트합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph 모니터 노드에서 root 액세스 권한이 있습니다.
-
MFA TOTP 토큰은
radosgw-admin mfa create를 사용하여 생성되었습니다.
프로세스
TOTP 토큰 PIN을 테스트하여 TOTP가 올바르게 작동하는지 확인합니다.
구문
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PIN
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PINCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고, SERIAL 을 TOTP 토큰의 ID를 나타내는 문자열로 설정하고, 일회성 암호 생성기의 최신 PIN 으로 PIN을 설정합니다.
예제
radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 ok
[root@host01 ~]# radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 okCopy to Clipboard Copied! Toggle word wrap Toggle overflow PIN을 처음 테스트한 경우 실패할 수 있습니다. 실패하는 경우 토큰을 다시 동기화합니다. Red Hat Ceph Storage Object Gateway 구성 및 관리 가이드에서 다단계 인증 토큰 다시 동기화 를 참조하십시오.
8.5.5. 다단계 인증 TOTP 토큰 재동기화 링크 복사링크가 클립보드에 복사되었습니다!
MFA(다중 인증) 시간 기반 암호 토큰을 다시 동기화합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph 모니터 노드에서 root 액세스 권한이 있습니다.
-
MFA TOTP 토큰은
radosgw-admin mfa create를 사용하여 생성되었습니다.
프로세스
시간 차이 또는 실패한 검사의 경우 다단계 인증 TOTP 토큰을 다시 동기화합니다.
이를 위해서는 두 개의 연속 핀, 즉 이전 핀과 현재 핀을 전달해야합니다.
구문
radosgw-admin mfa resync --uid=USERID --totp-serial=SERIAL --totp-pin=PREVIOUS_PIN --totp=pin=CURRENT_PIN
radosgw-admin mfa resync --uid=USERID --totp-serial=SERIAL --totp-pin=PREVIOUS_PIN --totp=pin=CURRENT_PINCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고, TOTP 토큰의 ID를 나타내는 문자열로 SERIAL 을 설정하고, PREVIOUS_PIN 을 사용자의 이전 PIN으로 설정하고, CURRENT_PIN 을 사용자의 현재 PIN으로 설정합니다.
예제
radosgw-admin mfa resync --uid=johndoe --totp-serial=MFAtest --totp-pin=802021 --totp-pin=439996
[root@host01 ~]# radosgw-admin mfa resync --uid=johndoe --totp-serial=MFAtest --totp-pin=802021 --totp-pin=439996Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 PIN을 테스트하여 토큰이 다시 동기화되었는지 확인합니다.
구문
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PIN
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PINCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고, SERIAL 을 TOTP 토큰의 ID를 나타내는 문자열로 설정하고, PIN 을 사용자의 PIN으로 설정합니다.
예제
radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 ok
[root@host01 ~]# radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 okCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5.6. 다단계 인증 TOTP 토큰 나열 링크 복사링크가 클립보드에 복사되었습니다!
특정 사용자가 보유한 모든 MFA(다중 인증) 시간 기반 TOTP(한 번 암호) 토큰을 나열합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph 모니터 노드에서 root 액세스 권한이 있습니다.
-
MFA TOTP 토큰은
radosgw-admin mfa create를 사용하여 생성되었습니다.
프로세스
MFA TOTP 토큰 나열:
구문
radosgw-admin mfa list --uid=USERID
radosgw-admin mfa list --uid=USERIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA가 설정되도록 설정합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5.7. 다단계 인증 TOTP 토큰 표시 링크 복사링크가 클립보드에 복사되었습니다!
serial을 지정하여 특정 MFA(다중 인증) 시간 기반 TOTP(한 번 암호) 토큰을 표시합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph 모니터 노드에서 root 액세스 권한이 있습니다.
-
MFA TOTP 토큰은
radosgw-admin mfa create를 사용하여 생성되었습니다.
프로세스
MFA TOTP 토큰을 표시합니다.
구문
radosgw-admin mfa get --uid=USERID --totp-serial=SERIAL
radosgw-admin mfa get --uid=USERID --totp-serial=SERIALCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고 TOTP 토큰의 ID를 나타내는 문자열로 SERIAL 을 설정합니다.
8.5.8. 다단계 인증 TOTP 토큰 삭제 링크 복사링크가 클립보드에 복사되었습니다!
MFA(다중 인증) 시간 기반 TOTP(한 번 암호) 토큰을 삭제합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph 모니터 노드에서 root 액세스 권한이 있습니다.
-
MFA TOTP 토큰은
radosgw-admin mfa create를 사용하여 생성되었습니다.
프로세스
MFA TOTP 토큰 삭제:
구문
radosgw-admin mfa remove --uid=USERID --totp-serial=SERIAL
radosgw-admin mfa remove --uid=USERID --totp-serial=SERIALCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고 TOTP 토큰의 ID를 나타내는 문자열로 SERIAL 을 설정합니다.
예제
radosgw-admin mfa remove --uid=johndoe --totp-serial=MFAtest
[root@host01 ~]# radosgw-admin mfa remove --uid=johndoe --totp-serial=MFAtestCopy to Clipboard Copied! Toggle word wrap Toggle overflow MFA TOTP 토큰이 삭제되었는지 확인합니다.
구문
radosgw-admin mfa get --uid=USERID --totp-serial=SERIAL
radosgw-admin mfa get --uid=USERID --totp-serial=SERIALCopy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고 TOTP 토큰의 ID를 나타내는 문자열로 SERIAL 을 설정합니다.
예제
radosgw-admin mfa get --uid=johndoe --totp-serial=MFAtest MFA serial id not found
[root@host01 ~]# radosgw-admin mfa get --uid=johndoe --totp-serial=MFAtest MFA serial id not foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5.9. MFA 지원 버전이 지정된 오브젝트 삭제 링크 복사링크가 클립보드에 복사되었습니다!
MFA 지원 버전이 지정된 오브젝트를 삭제합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- Ceph Monitor 노드에서 root 액세스 권한이 있습니다.
-
MFA TOTP 토큰은
radosgw-admin mfa create를 사용하여 생성되었습니다. - 버전 관리가 활성화된 버킷을 삭제하려면 root 사용자가 MFA-Object로 인증되어야 합니다.
- 삭제하려는 MFA-Object는 버전 관리가 활성화된 버킷에 있습니다.
프로세스
MFA 지원 버전이 지정된 오브젝트를 삭제합니다.
구문
radosgw-admin object rm --bucket <bucket_name> --object <object_name> --object-version <object_version> --totp-pin <totp_token>
radosgw-admin object rm --bucket <bucket_name> --object <object_name> --object-version <object_version> --totp-pin <totp_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow USERID 를 사용자 이름 MFA로 설정하고 TOTP 토큰의 ID를 나타내는 문자열로 SERIAL 을 설정합니다.
예제
[radosgw-admin object rm --bucket test-mfa --object obj1 --object-version 4SdKdSmpVAarLLdsFukjUVEwr-2oWfC --totp-pin 562813
[radosgw-admin object rm --bucket test-mfa --object obj1 --object-version 4SdKdSmpVAarLLdsFukjUVEwr-2oWfC --totp-pin 562813Copy to Clipboard Copied! Toggle word wrap Toggle overflow MFA 지원 버전이 지정된 오브젝트가 삭제되었는지 확인합니다.
구문
radosgw-admin bucket list --bucket <bucket_name>
radosgw-admin bucket list --bucket <bucket_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9장. 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 radosgw-admin CLI(명령줄 인터페이스)를 사용하거나 Red Hat Ceph Storage 대시보드를 사용하여 Ceph Object Gateway를 관리할 수 있습니다.
Red Hat Ceph Storage 대시보드에서 Ceph Object Gateway 기능을 일부 사용할 수 있는 것은 아닙니다.
사전 요구 사항
- 정상 실행 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
9.1. 스토리지 정책 생성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 개체 게이트웨이는 배치 대상을 식별하고 배치 대상과 연결된 풀에 버킷과 오브젝트를 저장하여 클라이언트 버킷 및 개체 데이터를 저장합니다. 배치 대상을 구성하지 않고 인스턴스의 영역 구성의 풀에 매핑하지 않으면 Ceph Object Gateway는 기본 대상 및 풀(예: default_placement )을 사용합니다.
스토리지 정책을 통해 Ceph Object Gateway 클라이언트에 스토리지 전략(예: 지속성, 복제 및 삭제 코딩)을 보장하는 방법으로 SSD, SAS 드라이브 및 SATA 드라이브와 같은 특정 유형의 스토리지를 대상으로 하는 기능을 제공합니다. 자세한 내용은 Red Hat Ceph Storage 7의 스토리지 전략 가이드를 참조하십시오.
스토리지 정책을 생성하려면 다음 절차를 따르십시오.
-
원하는 스토리지 전략을 사용하여 새 풀
.rgw.buckets.special을 만듭니다. 예를 들어, erasure-coding, 특정 CRUSH 규칙 세트, 복제본 수,pg_num및pgp_num수로 사용자 지정된 풀입니다. 영역 그룹 구성을 가져와서 파일에 저장합니다.
구문
radosgw-admin zonegroup --rgw-zonegroup=ZONE_GROUP_NAME get > FILE_NAME.json
radosgw-admin zonegroup --rgw-zonegroup=ZONE_GROUP_NAME get > FILE_NAME.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin zonegroup --rgw-zonegroup=default get > zonegroup.json
[root@host01 ~]# radosgw-admin zonegroup --rgw-zonegroup=default get > zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup.json파일의placement_target아래에특수배치 항목을 추가합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 수정된
zonegroup.json파일로 영역 그룹을 설정합니다.예제
radosgw-admin zonegroup set < zonegroup.json
[root@host01 ~]# radosgw-admin zonegroup set < zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 구성을 가져와서 파일에 저장합니다(예:
zone.json:):예제
radosgw-admin zone get > zone.json
[root@host01 ~]# radosgw-admin zone get > zone.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 파일을 편집하고
placement_pool아래에 새 배치 정책 키를 추가합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 영역 구성을 설정합니다.
예제
radosgw-admin zone set < zone.json
[root@host01 ~]# radosgw-admin zone set < zone.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 그룹 맵을 업데이트합니다.
예제
radosgw-admin period update --commit
[root@host01 ~]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특수 위치 항목은으로 나열됩니다.placement_target요청 시 스토리지 정책을 지정하려면 다음을 수행합니다.
예제
curl -i http://10.0.0.1/swift/v1/TestContainer/file.txt -X PUT -H "X-Storage-Policy: special-placement" -H "X-Auth-Token: AUTH_rgwtxxxxxx"
$ curl -i http://10.0.0.1/swift/v1/TestContainer/file.txt -X PUT -H "X-Storage-Policy: special-placement" -H "X-Auth-Token: AUTH_rgwtxxxxxx"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. 인덱스 없는 버킷 생성 링크 복사링크가 클립보드에 복사되었습니다!
생성된 버킷이 버킷 인덱스를 사용하여 개체 인덱스(즉, 인덱스 없는 버킷)를 저장하지 않는 배치 대상을 구성할 수 있습니다. 데이터 복제 또는 목록을 사용하지 않는 배치 대상은 인덱스 없는 버킷을 구현할 수 있습니다. 인덱스 없는 버킷은 배치 대상이 특정 버킷의 오브젝트를 추적하지 않는 메커니즘을 제공합니다. 이렇게 하면 오브젝트 쓰기가 발생할 때마다 발생하는 리소스 경합이 제거되고 Ceph Object Gateway에서 Ceph 스토리지 클러스터에 수행해야 하는 왕복 횟수가 줄어듭니다. 이는 동시 작업 및 소규모 오브젝트 쓰기 성능에 긍정적인 영향을 미칠 수 있습니다.
버킷 인덱스는 버킷의 올바른 상태를 반영하지 않으며 이러한 버킷을 나열해도 오브젝트 목록이 올바르게 반환되지 않습니다. 이는 여러 기능에 영향을 미칩니다. 특히 버킷 인덱스가 변경 정보를 저장하는 데 사용되지 않으므로 이러한 버킷은 다중 영역 환경에서 동기화되지 않습니다. 이 기능에 버킷 인덱스가 필요하므로 인덱스 없는 버킷에는 S3 오브젝트 버전 관리를 사용하지 않는 것이 좋습니다.
인덱스리스 버킷을 사용하면 단일 버킷에 있는 최대 오브젝트 수 제한이 제거됩니다.
인덱스 없는 버킷의 개체는 NFS에서 나열할 수 없습니다.
사전 요구 사항
- 실행 중이고 정상적인 Red Hat Ceph Storage 클러스터입니다.
- Ceph Object Gateway 소프트웨어 설치.
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
프로세스
zonegroup에 새 배치 대상을 추가합니다.
예제
[ceph: root@host03 /]# radosgw-admin zonegroup placement add --rgw-zonegroup="default" \ --placement-id="indexless-placement"
[ceph: root@host03 /]# radosgw-admin zonegroup placement add --rgw-zonegroup="default" \ --placement-id="indexless-placement"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 영역에 새 배치 대상을 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup의 기본 배치를
indexless-placement로 설정합니다.예제
[ceph: root@host03 /]# radosgw-admin zonegroup placement default --placement-id "indexless-placement"
[ceph: root@host03 /]# radosgw-admin zonegroup placement default --placement-id "indexless-placement"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서
indexless-placement대상에 생성된 버킷은 인덱스 없는 버킷이 됩니다.클러스터가 다중 사이트 구성에 있는 경우 기간을 업데이트하고 커밋합니다.
예제
[ceph: root@host03 /]# radosgw-admin period update --commit
[ceph: root@host03 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하여 변경 사항을 적용합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host03 /]# ceph orch restart rgw
[ceph: root@host03 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3. 버킷 인덱스 재하드 구성 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 단일 사이트 및 다중 사이트 배포에서 버킷 인덱스 재하드를 구성하여 성능을 향상시킬 수 있습니다.
버킷 인덱스를 수동으로 오프라인 또는 온라인으로 재하드할 수 있습니다.
9.3.1. 버킷 인덱스 재하드 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 인덱스 풀에 버킷 인덱스 데이터를 저장합니다. 기본값은 .rgw.buckets.index 매개변수입니다. 클라이언트가 버킷당 최대 오브젝트 수에 대한 할당량을 설정하지 않고 단일 버킷에 많은 오브젝트를 배치하면 인덱스 풀에서 성능이 저하될 수 있습니다.
- 버킷별로 많은 수의 오브젝트를 추가할 때 버킷 인덱스 재하드를 통해 성능 병목 현상을 방지할 수 있습니다.
- 새 버킷에 대한 버킷 인덱스 재하드를 구성하거나 기존 버킷에서 버킷 인덱스를 변경할 수 있습니다.
- shard 수가 계산된 shard 수에 가장 가까운 소수로 있어야 합니다. 소수인 버킷 인덱스 shard는 shard 전체에서 균등하게 분산된 버킷 인덱스 항목에서 더 잘 작동하는 경향이 있습니다.
버킷 인덱스를 수동으로 또는 동적으로 재하드할 수 있습니다.
버킷 인덱스를 동적으로 재하드하는 프로세스 중에 모든 Ceph Object Gateway 버킷을 주기적으로 확인하고 재하드해야 하는 버킷을 감지합니다. 버킷이
rgw_max_objs_per_shard매개변수에 지정된 값보다 크면 Ceph Object Gateway가 백그라운드에서 버킷을 동적으로 재하드합니다.rgw_max_objs_per_shard의 기본값은 shard당 100k 오브젝트입니다. 버킷 인덱스 복구는 영역 또는 영역 그룹을 수정하지 않고 업그레이드된 단일 사이트 구성에서 예상대로 동적으로 작동합니다. 단일 사이트 구성은 다음 중 하나일 수 있습니다.- 영역이 없는 기본 영역 구성입니다.
- 하나 이상의 영역이 있는 기본이 아닌 구성입니다.
- 다중 영역 단일 사이트 구성.
버전 지정된 버킷은 특히 개체의 작은 하위 집합을 작성하고 다시 작성하는 경우 불균형된 인덱스를 나타낼 수 있습니다. 이 문제로 인해 많은 수의 오브젝트 업로드가 발생할 때 버전이 지정된 버킷에 있는 큰 omap이 발생할 수 있습니다.
9.3.2. 버킷 인덱스 복구 링크 복사링크가 클립보드에 복사되었습니다!
bucket_index_max_shards = 0 을 사용하여 생성된 버킷을 다시 고정하면 버킷의 메타데이터가 제거됩니다. 그러나 영향을 받는 버킷을 복구하여 버킷 인덱스를 복원할 수 있습니다.
/usr/bin/rgw-restore-bucket-index 툴은 /tmp 디렉토리에 임시 파일을 생성합니다. 이러한 임시 파일은 이전 버킷의 버킷 오브젝트 수에 따라 공간을 사용합니다. 10M 이상의 개체가 있는 이전 버킷에는 /tmp 디렉토리에 4GB 이상의 여유 공간이 필요합니다. /tmp 의 스토리지 공간이 소진되면 툴은 다음 메시지와 함께 실패합니다.
ln: failed to access '/tmp/rgwrbi-object-list.4053207': No such file or directory
ln: failed to access '/tmp/rgwrbi-object-list.4053207': No such file or directory
임시 오브젝트가 제거됩니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 최소 두 개의 사이트에 설치되어 있습니다.
-
jq패키지가 설치되어 있어야 합니다.
프로세스
다음 두 단계 중 하나를 수행하여 버킷 인덱스 복구를 수행합니다.
-
radosgw-admin 오브젝트 reindex --bucket BUCKET_NAME --object OBJECT_NAME명령을 실행합니다. 스크립트 -
/usr/bin/rgw-restore-bucket-index -b BUCKET_NAME -p DATA_POOL_NAME을 실행합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
이 툴은 버전이 지정된 버킷에서는 작동하지 않습니다.
time rgw-restore-bucket-index --proceed serp-bu-ver-1 default.rgw.buckets.data NOTICE: This tool is currently considered EXPERIMENTAL. marker is e871fb65-b87f-4c16-a7c3-064b66feb1c4.25076.5 bucket_id is e871fb65-b87f-4c16-a7c3-064b66feb1c4.25076.5 Error: this bucket appears to be versioned, and this tool cannot work with versioned buckets.
[root@host01 ~]# time rgw-restore-bucket-index --proceed serp-bu-ver-1 default.rgw.buckets.data NOTICE: This tool is currently considered EXPERIMENTAL. marker is e871fb65-b87f-4c16-a7c3-064b66feb1c4.25076.5 bucket_id is e871fb65-b87f-4c16-a7c3-064b66feb1c4.25076.5 Error: this bucket appears to be versioned, and this tool cannot work with versioned buckets.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
도구의 범위는 멀티사이트가 아닌 단일 사이트로 제한됩니다. 즉, site-1에서
rgw-restore-bucket-index도구를 실행하면 site-2에서 개체를 복구하지 않으며 그 반대의 경우도 마찬가지입니다. 다중 사이트에서는 버킷에 대해 두 사이트에서 복구 툴과 오브젝트 다시 인덱싱 명령을 실행해야 합니다.
9.3.3. 버킷 인덱스 resharding의 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
다음 제한 사항을 주의하여 사용하십시오. 하드웨어 선택과 관련된 영향이 있으므로 Red Hat 계정 팀과 항상 이러한 요구 사항을 논의해야 합니다.
- 재하드가 필요하기 전에 하나의 버킷에 있는 최대 오브젝트 수: 버킷 인덱스 shard당 최대 102,400개의 오브젝트를 사용합니다. 재하드 및 병렬 처리를 극대화하려면 Ceph Object Gateway 버킷 인덱스 풀에서 충분한 OSD를 제공합니다. 이 병렬화는 Ceph Object Gateway 인스턴스 수로 확장되며 순서 내 인덱스 shard 열거를 숫자 시퀀스로 대체합니다. 기본 잠금 제한 시간은 60초에서 90초로 연장됩니다.
- 샤딩을 사용할 때 최대 오브젝트 수: 이전 테스트를 기반으로 현재 지원되는 버킷 인덱스 shard 수는 65521입니다. Red Hat 품질 보증은 버킷 샤딩에서 전체 확장성 테스트를 수행하지 않았습니다.
- 샤딩을 사용할 때 최대 오브젝트 수: 이전 테스트를 기반으로 현재 지원되는 버킷 인덱스 shard 수는 65,521입니다.
다른 영역이 수집되기 전에 버킷을 세 번 다시 마운트할 수 있습니다. 이전 세대가 동기화될 때까지 Resharding이 권장되지 않습니다. 이전 reshards의 약 4 세대의 버킷이 지원됩니다. 제한에 도달하면 이전 로그 생성 중 하나 이상이 완전히 트리밍될 때까지 동적 재하드가 버킷을 다시 덮어쓰지 않습니다.
radosgw-admin 버킷 reshard명령을 사용하면 다음 오류가 발생합니다.Bucket _BUCKET_NAME_ already has too many log generations (4) from previous reshards that peer zones haven't finished syncing. Resharding is not recommended until the old generations sync, but you can force a reshard with `--yes-i-really-mean-it`.
Bucket _BUCKET_NAME_ already has too many log generations (4) from previous reshards that peer zones haven't finished syncing. Resharding is not recommended until the old generations sync, but you can force a reshard with `--yes-i-really-mean-it`.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.4. 간단한 배포에서 버킷 인덱스 재하드 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 새 버킷에서 버킷 인덱스 재하드를 활성화하고 구성하려면 rgw_override_bucket_index_max_shards 매개변수를 사용합니다.
매개변수를 다음 값 중 하나로 설정할 수 있습니다.
-
버킷 인덱스 분할을 비활성화하려면 기본값입니다.
-
버킷 샤딩을 활성화하고 최대 shard 수를 설정하는
0보다 큰 값입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 최소 두 개의 사이트에 설치되어 있습니다.
프로세스
권장 shard 수를 계산합니다.
number of objects expected in a bucket / 100,000
number of objects expected in a bucket / 100,000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고현재 지원되는 최대 버킷 인덱스 shard 수는 65,521입니다.
그에 따라
rgw_override_bucket_index_max_shards옵션을 설정합니다.구문
ceph config set client.rgw rgw_override_bucket_index_max_shards VALUE
ceph config set client.rgw rgw_override_bucket_index_max_shards VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow VALUE 를 계산된 권장 shard 수로 바꿉니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_override_bucket_index_max_shards 12
[ceph: root@host01 /]# ceph config set client.rgw rgw_override_bucket_index_max_shards 12Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ceph Object Gateway의 모든 인스턴스에 대해 버킷 인덱스 재하드를 구성하려면
글로벌옵션을 사용하여rgw_override_bucket_index_max_shards매개변수를 설정합니다. -
Ceph Object Gateway의 특정 인스턴스에 대해서만 버킷 인덱스 재하드를 구성하려면 인스턴스에
rgw_override_bucket_index_max_shards매개변수를 추가합니다.
-
Ceph Object Gateway의 모든 인스턴스에 대해 버킷 인덱스 재하드를 구성하려면
클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하여 적용합니다.
구문
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root#host01 /]# ceph orch restart rgw
[ceph: root#host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.5. 다중 사이트 배포에서 버킷 인덱스 재하드 구성 링크 복사링크가 클립보드에 복사되었습니다!
다중 사이트 배포에서 각 영역에 장애 조치를 관리하기 위해 다른 index_pool 설정이 있을 수 있습니다. 하나의 영역 그룹에서 영역에 대한 shard 수를 일관되게 구성하려면 해당 영역 그룹의 구성에 bucket_index_max_shards 매개변수를 설정합니다. bucket_index_max_shards 매개변수의 기본값은 11입니다.
매개변수를 다음 값 중 하나로 설정할 수 있습니다.
-
버킷 인덱스 분할을 비활성화하려면
0입니다. -
버킷 샤딩을 활성화하고 최대 shard 수를 설정하는
0보다 큰 값입니다.
해당하는 경우 각 영역의 인덱스 풀을 SSD 기반 OSD의 CRUSH 규칙 세트에 매핑하면 버킷 인덱스 성능에 도움이 될 수 있습니다. 자세한 내용은 성능 도메인 설정 섹션을 참조하십시오.
다중 사이트 배포에서 동기화 문제를 방지하려면 버킷에 생성 간격이 3개 이상 없어야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 최소 두 개의 사이트에 설치되어 있습니다.
프로세스
권장 shard 수를 계산합니다.
number of objects expected in a bucket / 100,000
number of objects expected in a bucket / 100,000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고현재 지원되는 최대 버킷 인덱스 shard 수는 65,521입니다.
영역 그룹 구성을
zonegroup.json파일로 추출합니다.예제
[ceph: root@host01 /]# radosgw-admin zonegroup get > zonegroup.json
[ceph: root@host01 /]# radosgw-admin zonegroup get > zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup.json파일에서 이름이 지정된 각 영역에 대해bucket_index_max_shards매개변수를 설정합니다.구문
bucket_index_max_shards = VALUE
bucket_index_max_shards = VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow VALUE 를 계산된 권장 shard 수로 바꿉니다.
예제
bucket_index_max_shards = 12
bucket_index_max_shards = 12Copy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 그룹을 재설정합니다.
예제
[ceph: root@host01 /]# radosgw-admin zonegroup set < zonegroup.json
[ceph: root@host01 /]# radosgw-admin zonegroup set < zonegroup.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 복구가 완료되었는지 확인합니다.
구문
radosgw-admin reshard status --bucket BUCKET_NAME
radosgw-admin reshard status --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard status --bucket data
[ceph: root@host01 /]# radosgw-admin reshard status --bucket dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
스토리지 클러스터의 동기화 상태를 확인합니다.
예제
[ceph: root@host01 /]# radosgw-admin sync status
[ceph: root@host01 /]# radosgw-admin sync statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.6. 버킷 인덱스를 동적으로 복구 링크 복사링크가 클립보드에 복사되었습니다!
resharding 큐에 버킷을 추가하여 버킷 인덱스를 동적으로 재하드할 수 있습니다. 복구할 수 있도록 계획되어 있습니다. reshard 스레드는 백그라운드에서 실행되며 한 번에 하나씩 예약된 재하드를 실행합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 최소 두 개의 사이트에 설치되어 있습니다.
프로세스
rgw_dynamic_resharding매개변수를true로 설정합니다.예제
[ceph: root@host01 /]# radosgw-admin period get
[ceph: root@host01 /]# radosgw-admin period getCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 다음 명령을 사용하여 Ceph 구성을 사용자 지정합니다.
구문
ceph config set client.rgw OPTION VALUE
ceph config set client.rgw OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow OPTION을 다음 옵션으로 교체합니다.
-
rgw_reshard_num_logs: resharding 로그의 shard 수입니다. 기본값은16입니다. -
rgw_reshard_bucket_lock_duration: 재하드하는 동안 버킷에 있는 잠금 기간입니다. 기본값은360초입니다. -
rgw_dynamic_resharding: 동적 재하드를 활성화하거나 비활성화합니다. 기본값은true입니다. -
rgw_max_objs_per_shard: shard당 최대 오브젝트 수입니다. 기본값은 shard당100000오브젝트입니다. -
rgw_reshard_thread_interval: reshard 스레드 처리의 라운드 사이의 최대 시간입니다. 기본값은600초입니다.
예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_reshard_num_logs 23
[ceph: root@host01 /]# ceph config set client.rgw rgw_reshard_num_logs 23Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
resharding 큐에 버킷을 추가합니다.
구문
radosgw-admin reshard add --bucket BUCKET --num-shards NUMBER
radosgw-admin reshard add --bucket BUCKET --num-shards NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard add --bucket data --num-shards 10
[ceph: root@host01 /]# radosgw-admin reshard add --bucket data --num-shards 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow resharding 큐를 나열합니다.
예제
[ceph: root@host01 /]# radosgw-admin reshard list
[ceph: root@host01 /]# radosgw-admin reshard listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 로그 생성 및 shard를 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 재하드 상태를 확인합니다.
구문
radosgw-admin reshard status --bucket BUCKET
radosgw-admin reshard status --bucket BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard status --bucket data
[ceph: root@host01 /]# radosgw-admin reshard status --bucket dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow resharding 대기열의 즉시 프로세스 항목:
[ceph: root@host01 /]# radosgw-admin reshard process
[ceph: root@host01 /]# radosgw-admin reshard processCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보류 중인 버킷 재하드를 취소합니다.
주의보류 중인 재하드 작업만 취소할 수 있습니다. 진행 중인 재하드 작업을 취소하지 마십시오.
구문
radosgw-admin reshard cancel --bucket BUCKET
radosgw-admin reshard cancel --bucket BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard cancel --bucket data
[ceph: root@host01 /]# radosgw-admin reshard cancel --bucket dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷 재하드 상태를 확인합니다.
구문
radosgw-admin reshard status --bucket BUCKET
radosgw-admin reshard status --bucket BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard status --bucket data
[ceph: root@host01 /]# radosgw-admin reshard status --bucket dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.7. 다중 사이트 구성에서 버킷 인덱스 복구 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage는 다중 사이트 구성에서 동적 버킷 인덱스 복구 기능을 지원합니다. 이 기능을 사용하면 오브젝트 복제를 중단하지 않고 버킷을 다중 사이트 구성으로 다시 고정할 수 있습니다. rgw_dynamic_resharding 이 활성화되면 각 영역에서 독립적으로 실행되며 영역은 동일한 버킷에 대해 다른 shard 수를 선택할 수 있습니다.
다음 단계를 수행하면 기존 Red Hat Ceph Storage 클러스터 만 사용할 수 있습니다. 스토리지 클러스터를 업그레이드한 후 기존 영역 및 영역 그룹에서 resharding 기능을 수동으로 활성화해야 합니다.
영역 및 영역 그룹은 기본적으로 지원 및 활성화됩니다.
다른 영역이 수집되기 전에 버킷을 세 번 다시 고정할 수 있습니다. 자세한 내용은 버킷 인덱스 resharding의 제한을 참조하십시오.
동적으로 재하드하기 위한 임계값 수보다 많은 오브젝트 수를 사용하여 버킷을 생성하고 업로드한 경우 복구 프로세스를 시작하려면 이전 버킷에 I/O를 계속 작성해야 합니다.
사전 요구 사항
- 두 사이트의 Red Hat Ceph Storage 클러스터는 최신 버전으로 업그레이드됩니다.
- 두 사이트에서 모두 활성화된 모든 Ceph Object Gateway 데몬이 최신 버전으로 업그레이드됩니다.
- 모든 노드에 대한 루트 수준 액세스.
프로세스
zonegroup에서
resharding이 활성화되어 있는지 확인합니다.예제
[ceph: root@host01 /]# radosgw-admin sync status
[ceph: root@host01 /]# radosgw-admin sync statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow zonegroup에서 재하드하는 데 영역 그룹 기능이 활성화되지않은 경우 절차를 계속합니다.Ceph Object Gateway가 설치된 다중 사이트 구성의 모든 영역 그룹에서
재하드기능을 활성화합니다.구문
radosgw-admin zonegroup modify --rgw-zonegroup=ZONEGROUP_NAME --enable-feature=resharding
radosgw-admin zonegroup modify --rgw-zonegroup=ZONEGROUP_NAME --enable-feature=reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup modify --rgw-zonegroup=us --enable-feature=resharding
[ceph: root@host01 /]# radosgw-admin zonegroup modify --rgw-zonegroup=us --enable-feature=reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간 및 커밋을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway가 설치된 다중 사이트 구성의 모든 영역에서
Resharding기능을 활성화합니다.구문
radosgw-admin zone modify --rgw-zone=ZONE_NAME --enable-feature=resharding
radosgw-admin zone modify --rgw-zone=ZONE_NAME --enable-feature=reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=us-east --enable-feature=resharding
[ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=us-east --enable-feature=reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간 및 커밋을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 및 영역 그룹에서
resharding기능이 활성화되었는지 확인합니다. 각 영역에supported_features가 나열되고 zonegroups가enabled_features목록을 나열하는 것을 확인할 수 있습니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동기화 상태를 확인합니다.
예제
[ceph: root@host01 /]# radosgw-admin sync status realm 26cf6f23-c3a0-4d57-aae4-9b0010ee55cc (usa) zonegroup 33a17718-6c77-493e-99fe-048d3110a06e (us) zone 505b48db-6de0-45d5-8208-8c98f7b1278d (us_east) zonegroup features enabled: resharding[ceph: root@host01 /]# radosgw-admin sync status realm 26cf6f23-c3a0-4d57-aae4-9b0010ee55cc (usa) zonegroup 33a17718-6c77-493e-99fe-048d3110a06e (us) zone 505b48db-6de0-45d5-8208-8c98f7b1278d (us_east) zonegroup features enabled: reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
uszonegroup에 대해resharding기능이 활성화됩니다.선택 사항: 영역 그룹의
복구 기능을 비활성화할 수 있습니다.중요단일 영역에서 재하드를 비활성화하려면 해당 특정 영역에서
rgw_dynamic_resharding구성 옵션을false로 설정합니다.Ceph Object Gateway가 설치된 다중 사이트의 모든 영역 그룹에서 기능을 비활성화합니다.
구문
radosgw-admin zonegroup modify --rgw-zonegroup=ZONEGROUP_NAME --disable-feature=resharding
radosgw-admin zonegroup modify --rgw-zonegroup=ZONEGROUP_NAME --disable-feature=reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zonegroup modify --rgw-zonegroup=us --disable-feature=resharding
[ceph: root@host01 /]# radosgw-admin zonegroup modify --rgw-zonegroup=us --disable-feature=reshardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기간 및 커밋을 업데이트합니다.
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
[ceph: root@host01 /]# radosgw-admin period update --commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8. 버킷 인덱스를 수동으로 복구 링크 복사링크가 클립보드에 복사되었습니다!
버킷이 최적화된 초기 구성보다 커진 경우 radosgw-admin 버킷 reshard 명령을 사용하여 버킷 인덱스 풀을 다시 백업합니다. 이 명령은 다음 작업을 수행합니다.
- 지정된 버킷에 대한 새 버킷 인덱스 오브젝트 세트를 생성합니다.
- 이러한 버킷 인덱스 오브젝트에 오브젝트 항목을 배포합니다.
- 새 버킷 인스턴스를 만듭니다.
- 모든 새 인덱스 작업이 새 버킷 인덱스를 통과하도록 새 버킷 인스턴스를 버킷에 연결합니다.
- 이전 및 새 버킷 ID를 명령 출력에 출력합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 최소 두 개의 사이트에 설치되어 있습니다.
프로세스
원래 버킷 인덱스를 백업합니다.
구문
radosgw-admin bi list --bucket=BUCKET > BUCKET.list.backup
radosgw-admin bi list --bucket=BUCKET > BUCKET.list.backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bi list --bucket=data > data.list.backup
[ceph: root@host01 /]# radosgw-admin bi list --bucket=data > data.list.backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 인덱스를 다시 작성합니다.
구문
radosgw-admin bucket reshard --bucket=BUCKET --num-shards=NUMBER
radosgw-admin bucket reshard --bucket=BUCKET --num-shards=NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket reshard --bucket=data --num-shards=100
[ceph: root@host01 /]# radosgw-admin bucket reshard --bucket=data --num-shards=100Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷 재하드 상태를 확인합니다.
구문
radosgw-admin reshard status --bucket bucket
radosgw-admin reshard status --bucket bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard status --bucket data
[ceph: root@host01 /]# radosgw-admin reshard status --bucket dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.9. 재하드 후 오래된 버킷 항목 정리 링크 복사링크가 클립보드에 복사되었습니다!
resharding 프로세스에서 오래된 버킷 항목을 자동으로 정리하지 못할 수 있으며 이러한 인스턴스는 스토리지 클러스터의 성능에 영향을 미칠 수 있습니다.
오래된 인스턴스가 스토리지 클러스터의 성능에 부정적인 영향을 미치지 않도록 수동으로 정리합니다.
오래된 인스턴스를 정리하기 전에 Red Hat 지원에 문의하십시오.
다중 사이트 클러스터에서는 이 절차를 간단한 배포에서만 사용하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 개체 게이트웨이가 설치되어 있어야 합니다.
프로세스
오래된 인스턴스를 나열합니다.
[ceph: root@host01 /]# radosgw-admin reshard stale-instances list
[ceph: root@host01 /]# radosgw-admin reshard stale-instances listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 항목의 오래된 인스턴스를 정리합니다.
[ceph: root@host01 /]# radosgw-admin reshard stale-instances rm
[ceph: root@host01 /]# radosgw-admin reshard stale-instances rmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷 재하드 상태를 확인합니다.
구문
radosgw-admin reshard status --bucket BUCKET
radosgw-admin reshard status --bucket BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin reshard status --bucket data
[ceph: root@host01 /]# radosgw-admin reshard status --bucket dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.10. 압축 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 Ceph의 압축 플러그인을 사용하여 업로드된 오브젝트의 서버 측 압축을 지원합니다. 여기에는 다음이 포함됩니다.
-
zlib: 지원됨. -
snappy: 지원됨. -
zstd: 지원.
설정
영역의 배치 대상에서 압축을 활성화하려면 radosgw-admin 영역 배치 수정 명령에 --compression=TYPE 옵션을 제공합니다. compression TYPE 은 새 오브젝트 데이터를 작성할 때 사용할 압축 플러그인의 이름을 나타냅니다.
각 압축 오브젝트는 압축 유형을 저장합니다. 설정을 변경해도 기존 압축 오브젝트의 압축을 해제하는 기능도 저하되지 않으며, Ceph Object Gateway에서 기존 개체의 압축을 다시 풉니다.
이 압축 설정은 이 배치 대상을 사용하여 버킷에 업로드된 모든 새 개체에 적용됩니다.
영역의 배치 대상에서 압축을 비활성화하려면 radosgw-admin 영역 배치 modify 명령에 --compression=TYPE 옵션을 제공하고 빈 문자열 또는 none 을 지정합니다.
예제
압축을 활성화하거나 비활성화한 후 Ceph Object Gateway 인스턴스를 다시 시작하여 변경 사항이 적용됩니다.
Ceph Object Gateway는 기본 영역과 일련의 풀을 생성합니다. 프로덕션 배포의 경우 먼저 Creating a Cryostat 섹션을 참조하십시오.
통계
기존 명령 및 API는 압축되지 않은 데이터를 기반으로 오브젝트 및 버킷 크기를 계속 보고하지만 radosgw-admin 버킷 통계 명령에는 모든 버킷에 대한 압축 통계가 포함되어 있습니다.
radosgw-admin 버킷 stats 명령의 사용 유형은 다음과 같습니다.
-
rgw.main은 일반 항목 또는 오브젝트를 나타냅니다. -
rgw.multimeta는 불완전한 다중 파트 업로드의 메타데이터를 나타냅니다. -
rgw.cloudtiered는 라이프사이클 정책이 클라우드 계층으로 전환한 오브젝트를 나타냅니다.retain_head_object=true로 구성하면 헤드 오브젝트는 더 이상 데이터가 포함되지 않은 뒤에 남아 있지만 HeadObject 요청을 통해 오브젝트의 메타데이터를 제공할 수 있습니다. 이러한 스텁 헤드 오브젝트는rgw.cloudtiered카테고리를 사용합니다. 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 Amazon S3 클라우드 서비스로 데이터 전송 섹션을 참조하십시오.
구문
크기는 버킷에 있는 오브젝트의 누적 크기이며 압축 해제 및 암호화되지 않습니다. size_kb 는 누적된 크기 (size/1024) 로 계산됩니다. 이 예에서는thecas (1075028/1024) = 1050 입니다.
size_actual 은 각 개체가 4096바이트 블록 세트로 배포된 후 모든 오브젝트의 누적 크기입니다. 버킷에 두 개의 오브젝트(크기 크기 4100바이트 중 하나와 8500바이트)가 있는 경우 첫 번째 오브젝트는 8192바이트까지 반올림되고 두 번째 오브젝트는 12288바이트를 반올림하고 버킷에 대한 합계는 20480바이트입니다. size_kb_actual 은 킬로바이트 단위의 실제 크기이며 size_actual/1024 로 계산됩니다. 이 예에서는 1331200/1024 = 1300 입니다.
size_utilized 는 압축 및/또는 암호화된 후 데이터의 총 크기(바이트)입니다. 암호화로 인해 오브젝트의 크기가 증가할 수 있지만 압축은 줄어들 수 있습니다. size_kb_utilized 는 총 크기(킬로바이트 단위)입니다. size_kb_utilized는 킬로바이트 단위입니다 (size_utilized/1024). 이 예에서, it is craft (592035/1024)= 579.
9.4. 사용자 관리 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Storage 사용자 관리는 Ceph Storage 클러스터의 클라이언트 애플리케이션으로 Ceph Object Gateway가 아닌 Ceph Object Storage 서비스의 클라이언트 애플리케이션인 사용자를 나타냅니다. 클라이언트 애플리케이션이 Ceph Object Gateway 서비스와 상호 작용할 수 있도록 사용자, 키 및 시크릿을 생성해야 합니다.
다음 두 가지 사용자 유형이 있습니다.
- 사용자: 'user'라는 용어는 S3 인터페이스의 사용자를 반영합니다.
- 하위 사용자: 'subuser'라는 용어는 Swift 인터페이스의 사용자를 반영합니다. 하위 사용자는 사용자와 연결됩니다.
사용자와 하위 사용자를 생성, 수정, 보기, 일시 중단 및 제거할 수 있습니다.
다중 사이트 배포에서 사용자를 관리하는 경우 ALWAYS는 master 영역 그룹의 마스터 영역 내의 Ceph Object Gateway 노드에서 radosgw-admin 명령을 실행하여 사용자가 다중 사이트 클러스터 전체에서 동기화되도록 합니다. 보조 영역 또는 보조 영역 그룹에서 다중 사이트 클러스터에서 사용자를 생성, 수정 또는 삭제하지 마십시오.
사용자 및 하위 사용자 ID를 만드는 것 외에도 사용자의 표시 이름과 이메일 주소를 추가할 수 있습니다. 키와 시크릿을 지정하거나 키와 시크릿을 자동으로 생성할 수 있습니다. 키를 생성하거나 지정할 때 사용자 ID는 S3 키 유형에 해당하고 하위 사용자 ID는 swift 키 유형에 해당합니다. Swift 키에는 읽기, 및 쓰기, 읽기 쓰기전체 액세스 수준도 있습니다.
사용자 관리 명령줄 구문은 일반적으로 사용자 COMMAND USER_ID 패턴을 따릅니다. 여기서 USER_ID 는 --uid= 옵션 뒤에 사용자의 ID(S3) 또는 --subuser= 옵션 뒤에 사용자 이름(Swift)이 옵니다.
구문
radosgw-admin user <create|modify|info|rm|suspend|enable|check|stats> <--uid=USER_ID|--subuser=SUB_USER_NAME> [other-options]
radosgw-admin user <create|modify|info|rm|suspend|enable|check|stats> <--uid=USER_ID|--subuser=SUB_USER_NAME> [other-options]
실행한 명령에 따라 추가 옵션이 필요할 수 있습니다.
9.4.1. 멀티 테넌시 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 S3 및 Swift API 모두에 대해 멀티 테넌시를 지원합니다. 여기서 각 사용자와 버킷은 "테넌트"에 있습니다. 멀티 테넌시는 여러 테넌트가 "test", "main" 등과 같은 공통 버킷 이름을 사용하는 경우 네임스페이스 충돌을 방지합니다.
각 사용자 및 버킷은 테넌트 아래에 있습니다. 이전 버전과의 호환성을 위해 빈 이름을 가진 "레거시" 테넌트가 추가됩니다. 특히 테넌트를 지정하지 않고 버킷을 참조할 때마다 Swift API는 "기존" 테넌트를 가정합니다. 기존 사용자는 또한 레거시 테넌트 아래에 저장되므로 이전 릴리스와 동일한 방식으로 버킷 및 개체에 액세스합니다.
이와 같은 테넌트에는 작업이 없습니다. 사용자는 필요에 따라 표시되고 사라집니다. 명시적 테넌트가 있는 사용자를 생성, 수정 및 제거하기 위해 추가 옵션 --tenant 가 제공되거나 radosgw-admin 명령의 매개변수에 "TENANT$USER" 구문이 사용됩니다.
S3에 대한 testx$tester 사용자를 생성하려면 다음 명령을 실행합니다.
예제
radosgw-admin --tenant testx --uid tester \
--display-name "Test User" --access_key TESTER \
--secret test123 user create
[root@host01 ~]# radosgw-admin --tenant testx --uid tester \
--display-name "Test User" --access_key TESTER \
--secret test123 user create
Swift에 대한 testx$tester 사용자를 만들려면 다음 명령 중 하나를 실행합니다.
예제
명시적 테넌트를 사용하는 하위 사용자는 쉘에서 인용해야 했습니다.
9.4.2. 사용자 생성 링크 복사링크가 클립보드에 복사되었습니다!
user create 명령을 사용하여 S3-interface 사용자를 생성합니다. 사용자 ID와 표시 이름을 지정해야 합니다. 이메일 주소도 지정할 수 있습니다. 키 또는 시크릿을 지정하지 않으면 radosgw-admin 이 자동으로 생성됩니다. 그러나 생성된 키/시크릿 쌍을 사용하지 않으려면 키 및/또는 시크릿을 지정할 수 있습니다.
구문
radosgw-admin user create --uid=USER_ID \ [--key-type=KEY_TYPE] [--gen-access-key|--access-key=ACCESS_KEY]\ [--gen-secret | --secret=SECRET_KEY] \ [--email=EMAIL] --display-name=DISPLAY_NAME
radosgw-admin user create --uid=USER_ID \
[--key-type=KEY_TYPE] [--gen-access-key|--access-key=ACCESS_KEY]\
[--gen-secret | --secret=SECRET_KEY] \
[--email=EMAIL] --display-name=DISPLAY_NAME
예제
radosgw-admin user create --uid=janedoe --access-key=11BS02LGFB6AL6H1ADMW --secret=vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY --email=jane@example.com --display-name=Jane Doe
[root@host01 ~]# radosgw-admin user create --uid=janedoe --access-key=11BS02LGFB6AL6H1ADMW --secret=vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY --email=jane@example.com --display-name=Jane Doe
키 출력을 확인합니다. radosgw-admin 이 JSON 이스케이프(\) 문자를 생성하고 일부 클라이언트는 JSON 이스케이프 문자를 처리하는 방법을 모르는 경우가 있습니다. 조치에는 JSON 이스케이프 문자(\) 제거, 따옴표로 문자열 캡슐화, JSON 이스케이프 문자가 없는지 확인하기 위해 키를 다시 생성하거나 키와 시크릿을 수동으로 지정하는 작업이 포함됩니다.
9.4.3. 하위 사용자 생성 링크 복사링크가 클립보드에 복사되었습니다!
하위 사용자(Swift 인터페이스)를 생성하려면 사용자 ID(--uid=USERNAME), 하위 사용자 ID 및 하위 사용자의 액세스 수준을 지정해야 합니다. 키 또는 시크릿을 지정하지 않으면 radosgw-admin 이 자동으로 생성합니다. 그러나 생성된 키 및 시크릿 쌍을 사용하지 않으려면 키, 시크릿 또는 둘 다 지정할 수 있습니다.
full 은 액세스 제어 정책도 포함되어 있으므로 readwrite 가 아닙니다.
구문
radosgw-admin subuser create --uid=USER_ID --subuser=SUB_USER_ID --access=[ read | write | readwrite | full ]
radosgw-admin subuser create --uid=USER_ID --subuser=SUB_USER_ID --access=[ read | write | readwrite | full ]
예제
9.4.4. 사용자 정보 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
사용자에 대한 정보를 얻으려면 사용자 정보와 사용자 ID를 지정합니다(--uid=USERNAME).
예제
radosgw-admin user info --uid=janedoe
[root@host01 ~]# radosgw-admin user info --uid=janedoe
테넌트된 사용자에 대한 정보를 얻으려면 사용자 ID와 테넌트의 이름을 둘 다 지정합니다.
radosgw-admin user info --uid=janedoe --tenant=test
[root@host01 ~]# radosgw-admin user info --uid=janedoe --tenant=test
9.4.5. 사용자 정보 수정 링크 복사링크가 클립보드에 복사되었습니다!
사용자에 대한 정보를 수정하려면 사용자 ID(--uid=USERNAME)와 수정할 속성을 지정해야 합니다. 일반적인 수정 사항은 키와 시크릿, 이메일 주소, 표시 이름 및 액세스 수준에 대한 것입니다.
예제
radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"
[root@host01 ~]# radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"
하위 사용자 값을 수정하려면 하위 사용자 수정 및 하위 사용자 ID를 지정합니다.
예제
radosgw-admin subuser modify --subuser=janedoe:swift --access=full
[root@host01 ~]# radosgw-admin subuser modify --subuser=janedoe:swift --access=full
9.4.6. 사용자 활성화 및 일시 중단 링크 복사링크가 클립보드에 복사되었습니다!
사용자를 생성하면 기본적으로 사용자가 활성화됩니다. 그러나 사용자 권한을 중지하고 나중에 다시 활성화할 수 있습니다. 사용자를 일시 중지하려면 사용자 일시 중단 및 사용자 ID를 지정합니다.
radosgw-admin user suspend --uid=johndoe
[root@host01 ~]# radosgw-admin user suspend --uid=johndoe
일시 중지된 사용자를 다시 활성화하려면 사용자 활성화 및 사용자 ID를 지정합니다.
radosgw-admin user enable --uid=johndoe
[root@host01 ~]# radosgw-admin user enable --uid=johndoe
사용자를 비활성화하면 하위 사용자가 비활성화됩니다.
9.4.7. 사용자 제거 링크 복사링크가 클립보드에 복사되었습니다!
사용자를 제거하면 사용자와 하위 사용자가 시스템에서 제거됩니다. 그러나 원하는 경우에만 하위 사용자를 제거할 수 있습니다. 사용자(및 하위 사용자)를 제거하려면 사용자 rm 과 사용자 ID를 지정합니다.
구문
radosgw-admin user rm --uid=USER_ID[--purge-keys] [--purge-data]
radosgw-admin user rm --uid=USER_ID[--purge-keys] [--purge-data]
예제
[ceph: root@host01 /]# radosgw-admin user rm --uid=johndoe --purge-data
[ceph: root@host01 /]# radosgw-admin user rm --uid=johndoe --purge-data
하위 사용자만 제거하려면 하위 사용자 rm 과 하위 사용자 이름을 지정합니다.
예제
[ceph: root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys
[ceph: root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys
옵션은 다음과 같습니다.
-
데이터 제거:
--purge-data옵션은 UID와 관련된 모든 데이터를 제거합니다. -
제거 키:
--purge-keys옵션은 UID와 연결된 모든 키를 제거합니다.
9.4.8. 하위 사용자 제거 링크 복사링크가 클립보드에 복사되었습니다!
하위 사용자를 제거하면 Swift 인터페이스에 대한 액세스를 제거합니다. 사용자는 시스템에 남아 있습니다. 하위 사용자를 제거하려면 하위 사용자 rm과 하위 사용자 ID를 지정합니다.
구문
radosgw-admin subuser rm --subuser=SUB_USER_ID
radosgw-admin subuser rm --subuser=SUB_USER_ID
예제
radosgw-admin subuser rm --subuser=johndoe:swift
[root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift
옵션은 다음과 같습니다.
-
제거 키:
--purge-keys옵션은 UID와 연결된 모든 키를 제거합니다.
9.4.9. 사용자 이름 변경 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름을 변경하려면 radosgw-admin 사용자 rename 명령을 사용합니다. 이 명령이 사용하는 시간은 사용자가 보유한 버킷 및 오브젝트 수에 따라 다릅니다. 번호가 크면 screen 패키지에서 제공하는 Screen 유틸리티에서 명령을 사용하는 것이 좋습니다.
사전 요구 사항
- 작동 중인 Ceph 클러스터입니다.
-
Ceph Object Gateway를 실행하는 호스트에 대한
루트또는sudo액세스. - 설치된 Ceph Object Gateway입니다.
프로세스
사용자 이름을 변경합니다.
구문
radosgw-admin user rename --uid=CURRENT_USER_NAME --new-uid=NEW_USER_NAME
radosgw-admin user rename --uid=CURRENT_USER_NAME --new-uid=NEW_USER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자가 테넌트 내에 있는 경우 사용자 이름과 테넌트를 둘 다 지정합니다.
구문
radosgw-admin user rename --uid USER_NAME --new-uid NEW_USER_NAME --tenant TENANT
radosgw-admin user rename --uid USER_NAME --new-uid NEW_USER_NAME --tenant TENANTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 이름이 성공적으로 변경되었는지 확인합니다.
구문
radosgw-admin user info --uid=NEW_USER_NAME
radosgw-admin user info --uid=NEW_USER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin user info --uid=user2
[ceph: root@host01 /]# radosgw-admin user info --uid=user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자가 테넌트 내에 있는 경우 TENANT$USER_NAME 형식을 사용합니다.
구문
radosgw-admin user info --uid= TENANT$USER_NAME
radosgw-admin user info --uid= TENANT$USER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin user info --uid=test$user2
[ceph: root@host01 /]# radosgw-admin user info --uid=test$user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4.10. 키 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자의 키를 생성하려면 키 생성 을 지정해야 합니다. 사용자의 경우 사용자 ID 및 s3 키 유형을 지정합니다. 하위 사용자에 대한 키를 생성하려면 하위 사용자 ID와 swift 키 유형을 지정해야 합니다.
예제
9.4.11. 액세스 키 추가 및 제거 링크 복사링크가 클립보드에 복사되었습니다!
사용자 및 하위 사용자는 S3 및 Swift 인터페이스를 사용하려면 액세스 키가 있어야 합니다. 사용자 또는 하위 사용자를 생성하고 액세스 키와 시크릿을 지정하지 않으면 키와 시크릿이 자동으로 생성됩니다. 키를 생성하고 액세스 키 및/또는 시크릿을 지정하거나 생성할 수 있습니다. 액세스 키와 시크릿을 제거할 수도 있습니다. 옵션은 다음과 같습니다.
-
--secret=SECRET_KEY는 시크릿 키를 지정합니다(예: 수동으로 생성). -
--Gen-access-key는 임의의 액세스 키(기본적으로 S3 사용자용)를 생성합니다. -
--Gen-secret은 임의의 보안 키를 생성합니다. -
--key-type=KEY_TYPE은 키 유형을 지정합니다. 옵션은 swift 및 s3입니다.
키를 추가하려면 사용자를 지정합니다.
예제
radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret
[root@host01 ~]# radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret
키와 시크릿을 지정할 수도 있습니다.
액세스 키를 제거하려면 사용자와 키를 지정해야 합니다.
특정 사용자의 액세스 키를 찾습니다.
예제
radosgw-admin user info --uid=johndoe
[root@host01 ~]# radosgw-admin user info --uid=johndoeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 액세스 키는 출력의
"access_key"값입니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 액세스 키를 제거하려면 사용자 ID와 이전 단계의 액세스 키를 지정합니다.
구문
radosgw-admin key rm --uid=USER_ID --access-key ACCESS_KEY
radosgw-admin key rm --uid=USER_ID --access-key ACCESS_KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin key rm --uid=johndoe --access-key 0555b35654ad1656d804
[root@host01 ~]# radosgw-admin key rm --uid=johndoe --access-key 0555b35654ad1656d804Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4.12. 관리자 기능 추가 및 제거 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Storage 클러스터는 사용자가 REST API를 통해 관리 기능을 실행할 수 있는 관리 API를 제공합니다. 기본적으로 사용자는 이 API에 액세스할 수 없습니다. 사용자가 관리 기능을 수행할 수 있도록 하려면 사용자에게 관리 기능을 제공합니다.
사용자에게 관리 기능을 추가하려면 다음 명령을 실행합니다.
구문
radosgw-admin caps add --uid=USER_ID--caps=CAPS
radosgw-admin caps add --uid=USER_ID--caps=CAPS
사용자, 버킷, 메타데이터 및 사용량(utilization)에 읽기, 쓰기 또는 모든 기능을 추가할 수 있습니다.
구문
--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"
--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"
예제
radosgw-admin caps add --uid=johndoe --caps="users=*"
[root@host01 ~]# radosgw-admin caps add --uid=johndoe --caps="users=*"
사용자의 관리 기능을 제거하려면 다음 명령을 실행합니다.
예제
radosgw-admin caps remove --uid=johndoe --caps={caps}
[root@host01 ~]# radosgw-admin caps remove --uid=johndoe --caps={caps}
9.5. 역할 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 radosgw-admin 명령을 사용하여 역할 및 해당 역할과 연결된 권한을 생성, 삭제 또는 업데이트할 수 있습니다.
역할은 사용자와 유사하며 권한 정책이 연결되어 있습니다. 모든 ID로 간주할 수 있습니다. 사용자가 역할을 가정하면 동적으로 생성된 임시 인증 정보 세트가 사용자에게 반환됩니다. 역할은 일부 S3 리소스에 액세스할 수 있는 권한이 없는 사용자, 애플리케이션 및 서비스에 대한 액세스를 위임하는 데 사용할 수 있습니다.
9.5.1. 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
radosgw-admin role create 명령을 사용하여 사용자의 역할을 생성합니다. 명령에 assume-role-policy-doc 매개 변수를 사용하여 사용자를 생성해야 합니다. 이 매개 변수는 엔터티에 역할을 가정할 수 있는 권한을 부여하는 신뢰 관계 정책 문서입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할을 생성합니다.
구문
radosgw-admin role create --role-name=ROLE_NAME [--path=="PATH_TO_FILE"] [--assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT]
radosgw-admin role create --role-name=ROLE_NAME [--path=="PATH_TO_FILE"] [--assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --path의 값은 기본적으로/입니다.
9.5.2. 역할 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
get 명령을 사용하여 역할에 대한 정보를 가져옵니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할에 대한 정보를 가져옵니다.
구문
radosgw-admin role get --role-name=ROLE_NAME
radosgw-admin role get --role-name=ROLE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.3. 역할 나열 링크 복사링크가 클립보드에 복사되었습니다!
list 명령을 사용하여 특정 경로의 역할을 나열 할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할을 나열합니다.
구문
radosgw-admin role list
radosgw-admin role listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.4. 역할의 역할 정책 문서 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
modify 명령으로 역할을 가정할 수 있도록 엔터티 권한을 부여하는 assume 역할 정책 문서를 업데이트할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할의 assume 역할 정책 문서를 수정합니다.
구문
radosgw-admin role-trust-policy modify --role-name=ROLE_NAME --assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT
radosgw-admin role-trust-policy modify --role-name=ROLE_NAME --assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.5. 역할에 연결된 권한 정책 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
get 명령을 사용하여 역할에 연결된 특정 권한 정책을 가져올 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
권한 정책을 가져옵니다.
구문
radosgw-admin role-policy get --role-name=ROLE_NAME --policy-name=POLICY_NAME
radosgw-admin role-policy get --role-name=ROLE_NAME --policy-name=POLICY_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role-policy get --role-name=S3Access1 --policy-name=Policy1 { "Permission policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":\"arn:aws:s3:::example_bucket\"}]}" }[root@host01 ~]# radosgw-admin role-policy get --role-name=S3Access1 --policy-name=Policy1 { "Permission policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":\"arn:aws:s3:::example_bucket\"}]}" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.6. 역할 삭제 링크 복사링크가 클립보드에 복사되었습니다!
연결된 권한 정책을 제거한 후에만 역할을 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- 생성된 역할입니다.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할에 연결된 정책을 삭제합니다.
구문
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
[root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역할을 삭제합니다.
구문
radosgw-admin role delete --role-name=ROLE_NAME
radosgw-admin role delete --role-name=ROLE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role delete --role-name=S3Access1
[root@host01 ~]# radosgw-admin role delete --role-name=S3Access1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.7. 역할에 연결된 정책 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
put 명령을 사용하여 역할에 연결된 인라인 정책을 추가하거나 업데이트할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
인라인 정책을 업데이트합니다.
구문
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOCUMENT
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOCUMENTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role-policy put --role-name=S3Access1 --policy-name=Policy1 --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}[root@host01 ~]# radosgw-admin role-policy put --role-name=S3Access1 --policy-name=Policy1 --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는
Policy1을example_bucket의 모든 S3 작업을 허용하는S3Access1역할에 연결합니다.
9.5.8. 역할에 연결된 권한 정책 나열 링크 복사링크가 클립보드에 복사되었습니다!
list 명령을 사용하여 역할에 연결된 권한 정책의 이름을 나열 할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
권한 정책의 이름을 나열합니다.
구문
radosgw-admin role-policy list --role-name=ROLE_NAME
radosgw-admin role-policy list --role-name=ROLE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role-policy list --role-name=S3Access1 [ "Policy1" ]
[root@host01 ~]# radosgw-admin role-policy list --role-name=S3Access1 [ "Policy1" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.9. 역할에 연결된 정책 삭제 링크 복사링크가 클립보드에 복사되었습니다!
rm 명령을 사용하여 역할에 연결된 권한 정책을 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
권한 정책을 삭제합니다.
구문
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
[root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.10. 역할의 세션 기간 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
update 명령을 사용하여 역할의 세션 기간을 업데이트하여 제공된 인증 정보를 사용하여 사용자에게 로그인할 수 있는 시간을 제어할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
update명령을 사용하여 max-session-duration을 업데이트합니다.구문
radosgw-admin role update --role-name=ROLE_NAME --max-session-duration=7200
[root@node1 ~]# radosgw-admin role update --role-name=ROLE_NAME --max-session-duration=7200Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role update --role-name=test-sts-role --max-session-duration=7200
[root@node1 ~]# radosgw-admin role update --role-name=test-sts-role --max-session-duration=7200Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
역할을 나열하여 업데이트를 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.6. 할당량 관리 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 개체 게이트웨이를 사용하면 사용자가 소유한 사용자와 버킷에 할당량을 설정할 수 있습니다. 쿼터에는 버킷의 최대 오브젝트 수와 최대 스토리지 크기(MB)가 포함됩니다.
-
bucket:
--bucket옵션을 사용하면 사용자가 소유한 버킷에 대한 할당량을 지정할 수 있습니다. -
최대 오브젝트:
--max-objects설정을 사용하면 최대 오브젝트 수를 지정할 수 있습니다. 음수 값은 이 설정을 비활성화합니다. -
최대 크기:
--max-size옵션을 사용하면 최대 바이트 수에 대한 할당량을 지정할 수 있습니다. 음수 값은 이 설정을 비활성화합니다. -
할당량 범위:
--quota-scope옵션은 할당량 범위를 설정합니다. 옵션은버킷및사용자입니다. 버킷 할당량은 사용자가 소유한 버킷에 적용됩니다. 사용자 할당량은 사용자에게 적용됩니다.
오브젝트 수가 많은 버킷으로 인해 심각한 성능 문제가 발생할 수 있습니다. 하나의 버킷에서 권장되는 최대 오브젝트 수는 100,000개입니다. 이 수를 늘리려면 버킷 인덱스 분할을 구성합니다. 자세한 내용은 Configuring bucket index resharding을 참조하십시오.
9.6.1. 사용자 할당량 설정 링크 복사링크가 클립보드에 복사되었습니다!
할당량을 활성화하기 전에 먼저 할당량 매개 변수를 설정해야 합니다.
구문
radosgw-admin quota set --quota-scope=user --uid=USER_ID [--max-objects=NUMBER_OF_OBJECTS] [--max-size=MAXIMUM_SIZE_IN_BYTES]
radosgw-admin quota set --quota-scope=user --uid=USER_ID [--max-objects=NUMBER_OF_OBJECTS] [--max-size=MAXIMUM_SIZE_IN_BYTES]
예제
radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024
[root@host01 ~]# radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024
num 오브젝트 및/또는 max 크기에 대한 음수 값은 특정 할당량 특성 검사가 비활성화되어 있음을 의미합니다.
9.6.2. 사용자 할당량 활성화 및 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
사용자 할당량을 설정하면 활성화할 수 있습니다.
구문
radosgw-admin quota enable --quota-scope=user --uid=USER_ID
radosgw-admin quota enable --quota-scope=user --uid=USER_ID
활성화된 사용자 할당량을 비활성화할 수 있습니다.
구문
radosgw-admin quota disable --quota-scope=user --uid=USER_ID
radosgw-admin quota disable --quota-scope=user --uid=USER_ID
9.6.3. 버킷 할당량 설정 링크 복사링크가 클립보드에 복사되었습니다!
버킷 할당량은 지정된 uid 가 소유한 버킷에 적용됩니다. 사용자와 독립적입니다.
구문
radosgw-admin quota set --uid=USER_ID --quota-scope=bucket --bucket=BUCKET_NAME [--max-objects=NUMBER_OF_OBJECTS] [--max-size=MAXIMUM_SIZE_IN_BYTES]
radosgw-admin quota set --uid=USER_ID --quota-scope=bucket --bucket=BUCKET_NAME [--max-objects=NUMBER_OF_OBJECTS] [--max-size=MAXIMUM_SIZE_IN_BYTES]
NUMBER_OF_OBJECTS,MAXIMUM_SIZE_IN_BYTES 의 음수 값은 특정 할당량 특성 검사가 비활성화됨을 의미합니다.
9.6.4. 버킷 할당량 활성화 및 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
버킷 할당량을 설정하고 나면 활성화할 수 있습니다.
구문
radosgw-admin quota enable --quota-scope=bucket --uid=USER_ID
radosgw-admin quota enable --quota-scope=bucket --uid=USER_ID
활성화된 버킷 할당량을 비활성화할 수 있습니다.
구문
radosgw-admin quota disable --quota-scope=bucket --uid=USER_ID
radosgw-admin quota disable --quota-scope=bucket --uid=USER_ID
9.6.5. 할당량 설정 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정보 API를 통해 각 사용자의 할당량 설정에 액세스할 수 있습니다. CLI 인터페이스를 사용하여 사용자 할당량 설정 정보를 읽으려면 다음 명령을 실행합니다.
구문
radosgw-admin user info --uid=USER_ID
radosgw-admin user info --uid=USER_ID
테넌트된 사용자의 할당량 설정을 가져오려면 사용자 ID와 테넌트 이름을 지정합니다.
구문
radosgw-admin user info --uid=USER_ID --tenant=TENANT
radosgw-admin user info --uid=USER_ID --tenant=TENANT
9.6.6. 할당량 통계 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
할당량 통계가 비동기적으로 업데이트됩니다. 모든 사용자와 모든 버킷에 대한 할당량 통계를 수동으로 업데이트하여 최신 할당량 통계를 검색할 수 있습니다.
구문
radosgw-admin user stats --uid=USER_ID --sync-stats
radosgw-admin user stats --uid=USER_ID --sync-stats
9.6.7. 사용자 할당량 사용량 통계 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
사용자가 사용한 할당량의 양을 보려면 다음 명령을 실행합니다.
구문
radosgw-admin user stats --uid=USER_ID
radosgw-admin user stats --uid=USER_ID
최신 데이터를 받으려면 --sync-stats 옵션과 함께 radosgw-admin user stats 명령을 실행해야 합니다.
9.6.8. 할당량 캐시 링크 복사링크가 클립보드에 복사되었습니다!
할당량 통계는 각 Ceph Gateway 인스턴스에 대해 캐시됩니다. 여러 인스턴스가 있는 경우 각 인스턴스에 할당량에 대한 다른 보기가 있으므로 캐시에서 할당량이 완전히 적용되지 않도록 유지할 수 있습니다. 이를 제어하는 옵션은 rgw 버킷 할당량 ttl,rgw 사용자 할당량 버킷 동기화 간격, rgw 사용자 할당량 동기화 간격입니다. 이러한 값이 클수록 할당량 작업이 더 효율적이지만 동기화되지 않은 여러 인스턴스는 다음과 같습니다. 이러한 값이 작을수록 완벽한 시행에 더 근접하게 여러 인스턴스를 얻을 수 있습니다. 이 세 개가 모두 0이면 할당량 캐싱이 효과적으로 비활성화되고 여러 인스턴스가 할당량을 완벽하게 시행합니다.
9.6.9. 글로벌 할당량 읽기 및 쓰기 링크 복사링크가 클립보드에 복사되었습니다!
영역 그룹 맵에서 할당량 설정을 읽고 쓸 수 있습니다. 영역 그룹 맵을 가져오려면 다음을 수행합니다.
radosgw-admin global quota get
[root@host01 ~]# radosgw-admin global quota get
글로벌 할당량 설정은 할당량 세트의 명령을 사용하여 조작할 수 있습니다. 예를 들면 다음과 같습니다.
글로벌 할당량 카운터, 할당량 활성화 , 비활성화할당량
radosgw-admin global quota set --quota-scope bucket --max-objects 1024 radosgw-admin global quota enable --quota-scope bucket
[root@host01 ~]# radosgw-admin global quota set --quota-scope bucket --max-objects 1024
[root@host01 ~]# radosgw-admin global quota enable --quota-scope bucket
영역과 기간이 있는 다중 사이트 구성에서 글로벌 할당량에 대한 변경 사항을 period update --commit 를 사용하여 커밋해야 합니다. 기간이 없는 경우 변경 사항을 적용하려면 Ceph Object Gateway를 다시 시작해야 합니다.
9.7. 버킷 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway를 사용할 때 사용자 간에 이동하고 이름을 변경하여 버킷을 관리할 수 있습니다. 특정 이벤트에서 트리거하도록 버킷 알림을 생성할 수 있습니다. 또한 스토리지 클러스터의 수명 동안 발생할 수 있는 Ceph Object Gateway 내에서 고립되거나 누출된 오브젝트도 찾을 수 있습니다.
수집 속도가 높은 수백만 개의 오브젝트가 Ceph Object Gateway 버킷에 업로드되면 radosgw-admin 버킷 통계 명령을 사용하여 잘못된 num_objects 가 보고됩니다. radosgw-admin 버킷 목록 명령을 사용하면 num_objects 매개변수 값을 수정할 수 있습니다.
다중 사이트 클러스터에서 보조 사이트에서 버킷을 삭제해도 메타데이터 변경 사항이 기본 사이트와 동기화되지 않습니다. 따라서 Red Hat은 보조 사이트에서가 아닌 기본 사이트에서만 버킷을 삭제하는 것이 좋습니다.
9.7.1. 버킷 이름 변경 링크 복사링크가 클립보드에 복사되었습니다!
버킷의 이름을 바꿀 수 있습니다. 버킷 이름에 밑줄을 허용하려면 rgw_relaxed_s3_bucket_names 옵션을 true 로 설정합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- 기존 버킷입니다.
프로세스
버킷을 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 이름을 변경합니다.
구문
radosgw-admin bucket link --bucket=ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=USER_ID
radosgw-admin bucket link --bucket=ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=s3bucket1 --bucket-new-name=s3newb --uid=testuser
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=s3bucket1 --bucket-new-name=s3newb --uid=testuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이 테넌트 내에 있는 경우 테넌트도 지정합니다.
구문
radosgw-admin bucket link --bucket=tenant/ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=TENANT$USER_ID
radosgw-admin bucket link --bucket=tenant/ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=TENANT$USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/s3bucket1 --bucket-new-name=s3newb --uid=test$testuser
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/s3bucket1 --bucket-new-name=s3newb --uid=test$testuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 이름이 변경되었는지 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.2. 버킷 제거 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성을 사용하여 Red Hat Ceph Storage 클러스터에서 버킷을 제거합니다.
버킷에 오브젝트가 없는 경우 radosgw-admin bucket rm 명령을 실행할 수 있습니다. 버킷에 오브젝트가 있는 경우 --purge-objects 옵션을 사용할 수 있습니다.
다중 사이트 구성의 경우 Red Hat은 기본 사이트에서 버킷을 삭제하는 것이 좋습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
- 기존 버킷입니다.
프로세스
버킷을 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷을 제거합니다.
구문
radosgw-admin bucket rm --bucket=BUCKET_NAME
radosgw-admin bucket rm --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷에 오브젝트가 있는 경우 다음 명령을 실행합니다.
구문
radosgw-admin bucket rm --bucket=BUCKET --purge-objects --bypass-gc
radosgw-admin bucket rm --bucket=BUCKET --purge-objects --bypass-gcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1 --purge-objects --bypass-gc
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1 --purge-objects --bypass-gcCopy to Clipboard Copied! Toggle word wrap Toggle overflow --purge-objects옵션은 objects를 제거하고--bypass-gc옵션은 가비지 수집기 없이 오브젝트 삭제를 트리거하여 프로세스를 보다 효율적으로 만듭니다.버킷이 제거되었는지 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3. 버킷 이동 링크 복사링크가 클립보드에 복사되었습니다!
radosgw-admin 버킷 유틸리티는 사용자 간에 버킷을 이동하는 기능을 제공합니다. 이렇게 하려면 버킷을 새 사용자에게 연결하고 버킷의 소유권을 새 사용자로 변경합니다.
버킷을 이동할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있습니다.
- S3 버킷입니다.
- 테넌트 및 테넌트가 아닌 다양한 사용자.
9.7.3.1. 테넌트가 아닌 사용자 간에 버킷 이동 링크 복사링크가 클립보드에 복사되었습니다!
radosgw-admin 버킷 chown 명령은 버킷과 포함된 모든 오브젝트의 소유권을 한 사용자의 다른 사용자로 변경할 수 있는 기능을 제공합니다. 이를 수행하려면 현재 사용자의 버킷을 연결 해제하고 새 사용자에게 연결한 다음 버킷의 소유권을 새 사용자로 변경합니다.
프로세스
버킷을 새 사용자에게 연결합니다.
구문
radosgw-admin bucket link --uid=USER --bucket=BUCKET
radosgw-admin bucket link --uid=USER --bucket=BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket link --uid=user2 --bucket=data
[ceph: root@host01 /]# radosgw-admin bucket link --uid=user2 --bucket=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이
user2에 성공적으로 연결되었는지 확인합니다.예제
[ceph: root@host01 /]# radosgw-admin bucket list --uid=user2 [ "data" ][ceph: root@host01 /]# radosgw-admin bucket list --uid=user2 [ "data" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 소유권을 새 사용자로 변경합니다.
구문
radosgw-admin bucket chown --uid=user --bucket=bucket
radosgw-admin bucket chown --uid=user --bucket=bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket chown --uid=user2 --bucket=data
[ceph: root@host01 /]# radosgw-admin bucket chown --uid=user2 --bucket=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령의 출력에서
owner행을 확인하여데이터버킷의 소유권이 성공적으로 변경되었는지 확인합니다.예제
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=data
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.2. 테넌트 사용자 간에 버킷 이동 링크 복사링크가 클립보드에 복사되었습니다!
테넌트된 사용자와 다른 사용자 간에 버킷을 이동할 수 있습니다.
프로세스
버킷을 새 사용자에게 연결합니다.
구문
radosgw-admin bucket link --bucket=CURRENT_TENANT/BUCKET --uid=NEW_TENANT$USER
radosgw-admin bucket link --bucket=CURRENT_TENANT/BUCKET --uid=NEW_TENANT$USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/data --uid=test2$user2
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/data --uid=test2$user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이
user2에 성공적으로 연결되었는지 확인합니다.[ceph: root@host01 /]# radosgw-admin bucket list --uid=test$user2 [ "data" ][ceph: root@host01 /]# radosgw-admin bucket list --uid=test$user2 [ "data" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 소유권을 새 사용자로 변경합니다.
구문
radosgw-admin bucket chown --bucket=NEW_TENANT/BUCKET --uid=NEW_TENANT$USER
radosgw-admin bucket chown --bucket=NEW_TENANT/BUCKET --uid=NEW_TENANT$USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령의 출력에서
owner행을 확인하여데이터버킷의 소유권이 성공적으로 변경되었는지 확인합니다.[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test2/data
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test2/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.3. 테넌트가 아닌 사용자의 버킷을 테넌트 사용자로 이동 링크 복사링크가 클립보드에 복사되었습니다!
테넌트가 아닌 사용자의 버킷을 테넌트 사용자로 이동할 수 있습니다.
프로세스
선택 사항: 테넌트가 여러 개 없는 경우
rgw_keystone_implicit_tenants를 활성화하고 외부 테넌트에서 Ceph Object Gateway에 액세스하여 생성할 수 있습니다.rgw_keystone_implicit_tenants옵션을 활성화합니다.예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_implicit_tenants true
[ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_implicit_tenants trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow s3cmd또는swift명령을 사용하여 테넌트에서 Ceph Object Gateway에 액세스합니다.예제
[ceph: root@host01 /]# swift list
[ceph: root@host01 /]# swift listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
s3cmd를 사용하십시오.예제
[ceph: root@host01 /]# s3cmd ls
[ceph: root@host01 /]# s3cmd lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 외부 테넌트에서 첫 번째 액세스 권한은 동일한 Ceph Object Gateway 사용자를 생성합니다.
버킷을 테넌트 사용자로 이동합니다.
구문
radosgw-admin bucket link --bucket=/BUCKET --uid='TENANT$USER'
radosgw-admin bucket link --bucket=/BUCKET --uid='TENANT$USER'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터버킷이tenanted-user에 성공적으로 연결되었는지 확인합니다.예제
[ceph: root@host01 /]# radosgw-admin bucket list --uid='test$tenanted-user' [ "data" ][ceph: root@host01 /]# radosgw-admin bucket list --uid='test$tenanted-user' [ "data" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 소유권을 새 사용자로 변경합니다.
구문
radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'
radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령의 출력에서
owner행을 확인하여데이터버킷의 소유권이 성공적으로 변경되었는지 확인합니다.예제
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test/data
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.4. 고립 및 누출 오브젝트 찾기 링크 복사링크가 클립보드에 복사되었습니다!
정상적인 스토리지 클러스터에는 고립되거나 누출된 오브젝트가 없지만 경우에 따라 고립되거나 누출된 오브젝트가 발생할 수 있습니다.
스토리지 클러스터에 고립된 오브젝트가 있으며 RADOS 오브젝트와 연결된 오브젝트 ID가 있습니다. 그러나 버킷 인덱스 참조에 S3 개체가 있는 RADOS 오브젝트에 대한 참조는 없습니다. 예를 들어 작업 중간에 Ceph Object Gateway가 다운되면 일부 개체가 고립될 수 있습니다. 또한 발견되지 않은 버그로 인해 고립된 오브젝트가 발생할 수 있습니다.
Ceph Object Gateway 오브젝트가 RADOS 오브젝트에 매핑되는 방법을 확인할 수 있습니다. radosgw-admin 명령은 이러한 잠재적인 고립 또는 누출 오브젝트 목록을 검색하고 생성하는 툴을 제공합니다. radoslist 하위 명령을 사용하면 버킷 또는 스토리지 클러스터의 모든 버킷에 저장된 오브젝트가 표시됩니다. rgw-orphan-list 스크립트는 풀 내에 고립된 오브젝트를 표시합니다.
radoslist 하위 명령은 더 이상 사용되지 않는 orphans find 및 orphans finish 하위 명령을 대체합니다.
모든 오브젝트가 고립된 상태로 표시될 때 Indexless 버킷이 사용 중인 이 명령을 사용하지 마십시오.
고립된 오브젝트를 식별하는 또 다른 방법은 rados -p <pool> ls | grep BUCKET_ID 명령을 실행하는 것입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 실행 중인 Ceph Object Gateway입니다.
프로세스
버킷 내에 데이터를 보관하는 오브젝트 목록을 생성합니다.
구문
radosgw-admin bucket radoslist --bucket BUCKET_NAME
radosgw-admin bucket radoslist --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin bucket radoslist --bucket mybucket
[root@host01 ~]# radosgw-admin bucket radoslist --bucket mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고BUCKET_NAME 을 생략하면 모든 버킷의 모든 오브젝트가 표시됩니다.
rgw-orphan-list의 버전을 확인합니다.예제
head /usr/bin/rgw-orphan-list
[root@host01 ~]# head /usr/bin/rgw-orphan-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버전은
2023-01-11이상이어야 합니다.고립 목록을 생성해야 하는 디렉토리를 만듭니다.
예제
mkdir orphans
[root@host01 ~]# mkdir orphansCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에 만든 디렉터리로 이동합니다.
예제
cd orphans
[root@host01 ~]# cd orphansCopy to Clipboard Copied! Toggle word wrap Toggle overflow 풀 목록에서 고립을 찾을 풀을 선택합니다. 이 스크립트는 클러스터의 오브젝트에 따라 오랫동안 실행될 수 있습니다.
예제
rgw-orphan-list
[root@host01 orphans]# rgw-orphan-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 고립을 검색할 풀 이름을 입력합니다.
중요메타데이터 풀이 아닌
rgw-orphan-list명령을 사용할 때 데이터 풀을 지정해야 합니다.rgw-orphan-list툴 사용량의 세부 정보를 확인합니다.Synatx
rgw-orphan-list -h rgw-orphan-list POOL_NAME /DIRECTORY
rgw-orphan-list -h rgw-orphan-list POOL_NAME /DIRECTORYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ls -l명령을 실행하여 오류로 끝나는 파일이 문제 없이 실행되었음을 나타내는 0 길이여야 하는지 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 나열된 고립 오브젝트를 검토합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 고립 오브젝트를 제거합니다.
구문
rados -p POOL_NAME rm OBJECT_NAME
rados -p POOL_NAME rm OBJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
rados -p default.rgw.buckets.data rm myobject
[root@host01 orphans]# rados -p default.rgw.buckets.data rm myobjectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주의올바른 오브젝트를 제거 중인지 확인합니다.
rados rm명령을 실행하면 스토리지 클러스터에서 데이터가 제거됩니다.
9.7.3.5. 버킷 인덱스 항목 관리 링크 복사링크가 클립보드에 복사되었습니다!
radosgw-admin 버킷 검사 하위 명령을 사용하여 Red Hat Ceph Storage 클러스터에서 Ceph Object Gateway의 버킷 인덱스 항목을 관리할 수 있습니다.
multipart 업로드 오브젝트 조각과 관련된 각 버킷 인덱스 항목은 해당 .meta 인덱스 항목과 일치합니다. 지정된 다중 파트 업로드에 대해 하나의 .meta 항목이 있어야 합니다. 조각에 대한 해당 .meta 항목을 찾지 못하면 출력의 섹션에 "orphaned" 조각 항목이 나열됩니다.
버킷의 통계는 버킷 인덱스 헤더에 저장됩니다. 이 단계에서는 해당 헤더를 로드하고 버킷 인덱스의 모든 일반 오브젝트 항목을 반복하고 통계를 다시 계산합니다. 그런 다음 "existing_header" 및 "calculated_header"라는 섹션에 실제 및 계산된 통계를 각각 표시하여 비교할 수 있습니다.
버킷 검사 하위 명령과 함께 인덱스에서 "orphaned" 항목을 제거하고 계산된 헤더의 기존 통계도 덮어씁니다. 이 경우 버전 관리에 사용되는 여러 항목을 포함한 모든 항목이 출력에 나열됩니다.
--fix 옵션을 사용하는 경우 버킷
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 실행 중인 Ceph Object Gateway입니다.
- 새로 생성된 버킷입니다.
프로세스
특정 버킷의 버킷 인덱스를 확인합니다.
구문
radosgw-admin bucket check --bucket=BUCKET_NAME
radosgw-admin bucket check --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin bucket check --bucket=mybucket
[root@rgw ~]# radosgw-admin bucket check --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 분리된 오브젝트 제거를 포함하여 버킷 인덱스의 불일치를 수정합니다.
구문
radosgw-admin bucket check --fix --bucket=BUCKET_NAME
radosgw-admin bucket check --fix --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin bucket check --fix --bucket=mybucket
[root@rgw ~]# radosgw-admin bucket check --fix --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.6. 버킷 알림 링크 복사링크가 클립보드에 복사되었습니다!
버킷 알림은 버킷에서 특정 이벤트가 발생할 때 Ceph Object Gateway에서 정보를 보내는 방법을 제공합니다. 버킷 알림은 HTTP, AMQP0.9.1 및 Kafka 끝점으로 보낼 수 있습니다. 특정 버킷 및 특정 주제의 이벤트에 대한 버킷 알림을 보내려면 알림 항목을 생성해야 합니다. 버킷 알림은 이벤트 유형의 서브 세트에서 또는 기본적으로 모든 이벤트 유형에 대해 생성할 수 있습니다. 버킷 알림은 키 접두사 또는 접미사, 키와 일치하는 정규식, 오브젝트에 연결된 메타데이터 속성 또는 오브젝트 태그를 기반으로 이벤트를 필터링할 수 있습니다. 버킷 알림에는 버킷 알림 메커니즘에 대한 구성 및 제어 인터페이스를 제공하는 REST API가 있습니다.
버킷 알림 API는 기본적으로 활성화되어 있습니다. rgw_enable_apis 구성 매개 변수가 명시적으로 설정된 경우 s3 및 알림이 포함되어 있는지 확인합니다. 이를 확인하려면 ceph --admin-daemon /var/run/ceph/ceph-client.rgw.NAME.asok config get rgw_enable_apis 명령을 실행합니다. NAME 을 Ceph Object Gateway 인스턴스 이름으로 바꿉니다.
CLI를 사용한 주제 관리
Ceph Object Gateway 버킷에 대한 목록, 가져오기 및 제거를 관리할 수 있습니다.
항목 나열: 다음 명령을 실행하여 모든 주제의 구성을 나열합니다.
예제
[ceph: host01 /]# radosgw-admin topic list
[ceph: host01 /]# radosgw-admin topic listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주제 가져오기: 다음 명령을 실행하여 특정 주제의 구성을 가져옵니다.
예제
[ceph: host01 /]# radosgw-admin topic get --topic=topic1
[ceph: host01 /]# radosgw-admin topic get --topic=topic1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Remove topics: 다음 명령을 실행하여 특정 주제의 구성을 제거합니다.
예제
[ceph: host01 /]# radosgw-admin topic rm --topic=topic1
[ceph: host01 /]# radosgw-admin topic rm --topic=topic1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ceph Object Gateway 버킷이 해당 주제로 구성된 경우에도 항목이 제거됩니다.
9.7.3.7. 버킷 알림 생성 링크 복사링크가 클립보드에 복사되었습니다!
버킷 수준에서 버킷 알림을 생성합니다. 알림 구성에는 Red Hat Ceph Storage Object Gateway S3 이벤트, ObjectCreated,ObjectRemoved, ObjectLifecycle:Expiration 이 있습니다. 버킷 알림을 보내려면 대상과 게시해야 합니다. 버킷 알림은 S3 작업입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 실행 중인 HTTP 서버, RabbitMQ 서버 또는 Kafka 서버.
- 루트 수준 액세스.
- Red Hat Ceph Storage Object Gateway 설치
- 사용자 액세스 키 및 시크릿 키.
- 엔드포인트 매개 변수.
Red Hat은 put,post,multipartUpload 와 같은 ObjectCreate 이벤트를 지원합니다. Red Hat은 object_delete 및 s3_multi_object_delete 와 같은 ObjectRemove 이벤트도 지원합니다.
프로세스
- S3 버킷을 생성합니다.
-
http,amqp또는kafka프로토콜에 대한 Cryostat 주제를 만듭니다. s3:objectCreate,s3:objectRemove,s3:ObjectLifecycle:Expiration이벤트에 대한 S3 버킷 알림을 생성합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 버킷에 S3 오브젝트를 생성합니다.
-
http,rabbitmq또는kafka수신자에서 오브젝트 생성 이벤트를 확인합니다. - 오브젝트를 삭제합니다.
-
http,rabbitmq또는kafka수신자에서 오브젝트 삭제 이벤트를 확인합니다.
9.7.4. S3 버킷 복제 API 링크 복사링크가 클립보드에 복사되었습니다!
S3 버킷 복제 API가 구현되고 사용자가 다양한 버킷 간에 복제 규칙을 생성할 수 있습니다. AWS 복제 기능은 동일한 영역 내에서 버킷 복제를 허용하지만 Ceph Object Gateway에서는 현재 이를 허용하지 않습니다. 그러나 Ceph Object Gateway API에는 사용자가 특정 버킷을 동기화할 영역을 선택할 수 있는 Zone 배열도 추가되었습니다.
9.7.4.1. S3 버킷 복제 생성 링크 복사링크가 클립보드에 복사되었습니다!
버킷에 대한 복제 구성을 생성하거나 기존 구성을 교체합니다.
복제 구성에는 하나 이상의 규칙이 포함되어야 합니다. 각 규칙은 소스 버킷의 오브젝트를 필터링하여 복제할 오브젝트 서브 세트를 식별합니다.
S3 복제를 사용하여 버킷 수준 정책을 생성한 경우 기본적으로 파이프 구성은 사용자 모드를 사용자 대상 매개변수로 설정합니다. 대상 매개 변수에 대한 자세한 내용은 대상 매개변수: 사용자 모드를 참조하십시오.
사전 요구 사항
- 다중 사이트 Ceph 개체 게이트웨이가 구성된 실행 중인 Red Hat Ceph Storage 클러스터입니다. 다중 사이트 동기화 정책 생성에 대한 자세한 내용은 동기화 정책 그룹 생성을 참조하십시오.
- 영역 그룹 수준 정책이 생성되었습니다. 영역 그룹 정책 생성에 대한 자세한 내용은 Bucket 세분화된 동기화 정책을 참조하십시오.
프로세스
복제의 세부 정보가 포함된 복제 구성 파일을 만듭니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 API put bucket 복제를 생성합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL s3api put-bucket-replication --bucket BUCKET_NAME --replication-configuration file://REPLICATION_CONFIIRATION_FILE.json
aws --endpoint-url=RADOSGW_ENDPOINT_URL s3api put-bucket-replication --bucket BUCKET_NAME --replication-configuration file://REPLICATION_CONFIIRATION_FILE.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api put-bucket-replication --bucket testbucket --replication-configuration file://replication.json
[root@host01 ~]# aws --endpoint-url=http://host01:80 s3api put-bucket-replication --bucket testbucket --replication-configuration file://replication.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
동기화 정책
get 명령을 사용하여 동기화 정책을확인합니다.구문
radosgw-admin sync policy get --bucket BUCKET_NAME
radosgw-admin sync policy get --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고복제 정책을 적용할 때 규칙은 파이프 라고 하는 sync-policy 규칙으로 변환되며
활성화 및분류됩니다.비활성화됨으로-
enabled: 이 파이프는 활성화되고 활성 상태이며 그룹 상태는 'rgw_sync_policy_group:STATUS'로 설정됩니다. 예를 들어
s3-bucket-replication:enabled. -
disabled: 이 세트의 파이프는 활성 상태가 아니며 그룹 상태는 'rgw_sync_policy_group:STATUS'로 설정됩니다. 예를 들어
s3-bucket-replication:disabled.
복제 정책의 일부로 구성할 수 있는 규칙이 여러 개 있을 수 있으므로 각 그룹의 정확한 매핑을 위해 두 개의 개별 그룹('enabled' 및 '허용됨' 상태의 다른 그룹)이 있습니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
enabled: 이 파이프는 활성화되고 활성 상태이며 그룹 상태는 'rgw_sync_policy_group:STATUS'로 설정됩니다. 예를 들어
9.7.4.2. S3 버킷 복제 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
버킷의 복제 구성을 검색할 수 있습니다.
사전 요구 사항
- 다중 사이트 Ceph 개체 게이트웨이가 구성된 실행 중인 Red Hat Ceph Storage 클러스터입니다. 다중 사이트 동기화 정책 생성에 대한 자세한 내용은 동기화 정책 그룹 생성을 참조하십시오.
- 영역 그룹 수준 정책이 생성되었습니다. 영역 그룹 정책 생성에 대한 자세한 내용은 Bucket 세분화된 동기화 정책을 참조하십시오.
- S3 버킷 복제가 생성되었습니다. 자세한 내용은 S3 버킷 복제 API 를 참조하십시오.
프로세스
S3 API put 버킷 복제를 가져옵니다.
구문
aws s3api get-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URL
aws s3api get-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.4.3. S3 버킷 복제 삭제 링크 복사링크가 클립보드에 복사되었습니다!
버킷에서 복제 구성을 삭제합니다.
버킷 소유자는 다른 사용자에게 복제 구성을 제거할 수 있는 권한을 부여할 수 있습니다.
사전 요구 사항
- 다중 사이트 Ceph 개체 게이트웨이가 구성된 실행 중인 Red Hat Ceph Storage 클러스터입니다. 다중 사이트 동기화 정책 생성에 대한 자세한 내용은 동기화 정책 그룹 생성을 참조하십시오.
- 영역 그룹 수준 정책이 생성되었습니다. 영역 그룹 정책 생성에 대한 자세한 내용은 Bucket 세분화된 동기화 정책을 참조하십시오.
- S3 버킷 복제가 생성되었습니다. 자세한 내용은 S3 버킷 복제 API 를 참조하십시오.
프로세스
S3 API put 버킷 복제를 삭제합니다.
구문
aws s3api delete-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URL
aws s3api delete-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws s3api delete-bucket-replication --bucket testbucket --endpoint-url=http://host01:80
[root@host01 ~]# aws s3api delete-bucket-replication --bucket testbucket --endpoint-url=http://host01:80Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
기존 복제 규칙이 삭제되었는지 확인합니다.
구문
radosgw-admin sync policy get --bucket=BUCKET_NAME
radosgw-admin sync policy get --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=testbucket
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=testbucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.4.4. 사용자의 S3 버킷 복제 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 다른 사용자가 해당 특정 사용자/사용자 아래에 있는 버킷에서 s3 복제 API 작업 수행을 제한하도록 사용자 정책을 설정할 수 있습니다.
사전 요구 사항
- 다중 사이트 Ceph 개체 게이트웨이가 구성된 실행 중인 Red Hat Ceph Storage 클러스터입니다. 다중 사이트 동기화 정책 생성에 대한 자세한 내용은 동기화 정책 그룹 생성을 참조하십시오.
- 영역 그룹 수준 정책이 생성되었습니다. 영역 그룹 정책 생성에 대한 자세한 내용은 Bucket 세분화된 동기화 정책을 참조하십시오.
프로세스
S3 버킷 복제 API에 대한 액세스를 거부하려면 사용자 정책 구성 파일을 생성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리자 권한으로 S3 API에 대한 사용자 액세스를 비활성화하려면 사용자 정책을 user로 설정합니다.
구문
aws --endpoint-url=ENDPOINT_URL iam put-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --policy-document POLICY_DOCUMENT_PATH
aws --endpoint-url=ENDPOINT_URL iam put-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --policy-document POLICY_DOCUMENT_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 iam put-user-policy --user-name newuser1 --policy-name userpolicy --policy-document file://user_policy.json
[root@host01 ~]# aws --endpoint-url=http://host01:80 iam put-user-policy --user-name newuser1 --policy-name userpolicy --policy-document file://user_policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
관리자로서 사용자 정책이 설정되었는지 확인합니다.
구문
aws --endpoint-url=ENDPOINT_URL iam get-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --region us
aws --endpoint-url=ENDPOINT_URL iam get-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --region usCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 iam get-user-policy --user-name newuser1 --policy-name userpolicy --region us
[root@host01 ~]# aws --endpoint-url=http://host01:80 iam get-user-policy --user-name newuser1 --policy-name userpolicy --region usCopy to Clipboard Copied! Toggle word wrap Toggle overflow admin 사용자가 사용자 정책을 설정하는 사용자로 S3 버킷 복제 API 작업 아래 작업을 수행하여 작업이 예상대로 거부되는지 확인합니다.
9.8. 버킷 라이프사이클 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 버킷 라이프사이클 구성을 사용하여 오브젝트를 관리하여 수명 동안 효과적으로 저장할 수 있습니다. 예를 들어 사용 사례에 따라 더 저렴한 스토리지 클래스, 아카이브로 오브젝트를 전환하거나 삭제할 수 있습니다.
RADOS 게이트웨이는 버킷 오브젝트 세트에 정의된 규칙을 사용하여 S3 API 오브젝트 만료를 지원합니다. 각 규칙에는 오브젝트를 선택하는 접두사와 오브젝트를 사용할 수 없게 되는 일 수가 있습니다.
radosgw-admin lc reshard 명령은 Red Hat Ceph Storage 3.3에서 더 이상 사용되지 않으며 Red Hat Ceph Storage 4 이상 릴리스에서 지원되지 않습니다.
9.8.1. 라이프사이클 관리 정책 생성 링크 복사링크가 클립보드에 복사되었습니다!
radosgw-admin 명령을 사용하는 대신 표준 S3 작업을 사용하여 버킷 라이프사이클 정책 구성을 관리할 수 있습니다. RADOS 게이트웨이는 버킷에 적용된 Amazon S3 API 정책 언어의 하위 집합만 지원합니다. 라이프사이클 구성에는 버킷 오브젝트 세트에 대해 정의된 하나 이상의 규칙이 포함됩니다.
사전 요구 사항
- 실행 중인 Red Hat Storage 클러스터입니다.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
-
AWS CLI패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.
프로세스
라이프사이클 구성에 사용할 JSON 파일을 생성합니다.
예제
vi lifecycle.json
[user@client ~]$ vi lifecycle.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파일에 특정 라이프사이클 구성 규칙을 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 라이프사이클 구성 예제에서는 1일 후에 images 디렉토리에서 오브젝트를 만료합니다.
버킷에서 라이프사이클 구성을 설정합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
lifecycle.json파일이 현재 디렉터리에 있습니다.
검증
버킷의 라이프사이클 구성을 검색합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Ceph Object Gateway 노드에서 Cephadm 쉘에 로그인하고 버킷 라이프사이클 구성을 검색합니다.
구문
radosgw-admin lc get --bucket=BUCKET_NAME
radosgw-admin lc get --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.2. 라이프사이클 관리 정책 삭제 링크 복사링크가 클립보드에 복사되었습니다!
s3api delete-bucket-lifecycle 명령을 사용하여 지정된 버킷의 라이프사이클 관리 정책을 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Storage 클러스터입니다.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
-
AWS CLI패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.
프로세스
라이프사이클 구성을 삭제합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-lifecycle --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-lifecycle --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api delete-bucket-lifecycle --bucket testbucket
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api delete-bucket-lifecycle --bucket testbucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷의 라이프사이클 구성을 검색합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api get-bucket-lifecycle-configuration --bucket testbucket
[user@client ~]# aws --endpoint-url=http://host01:80 s3api get-bucket-lifecycle-configuration --bucket testbucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Ceph Object Gateway 노드에서 버킷 라이프사이클 구성을 검색합니다.
구문
radosgw-admin lc get --bucket=BUCKET_NAME
radosgw-admin lc get --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin lc get --bucket=testbucket
[ceph: root@host01 /]# radosgw-admin lc get --bucket=testbucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고버킷 라이프사이클 정책이 없는 경우 명령에서 정보를 반환하지 않습니다.
9.8.3. 라이프사이클 관리 정책 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
s3cmd put-bucket-lifecycle-configuration 명령을 사용하여 라이프사이클 관리 정책을 업데이트할 수 있습니다.
put-bucket-lifecycle-configuration 은 기존 버킷 라이프사이클 구성을 덮어씁니다. 현재 라이프사이클 정책 설정을 유지하려면 라이프사이클 구성 파일에 해당 설정을 포함해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Storage 클러스터입니다.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
-
AWS CLI패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.
프로세스
라이프사이클 구성에 대한 JSON 파일을 생성합니다.
예제
vi lifecycle.json
[user@client ~]$ vi lifecycle.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파일에 특정 라이프사이클 구성 규칙을 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷에서 라이프사이클 구성을 업데이트합니다.
구문
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json
aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json
[user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷의 라이프사이클 구성을 검색합니다.
구문
aws --endpointurl=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
aws --endpointurl=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Ceph Object Gateway 노드에서 Cephadm 쉘에 로그인하고 버킷 라이프사이클 구성을 검색합니다.
구문
radosgw-admin lc get --bucket=BUCKET_NAME
radosgw-admin lc get --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.4. 버킷 라이프사이클 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
라이프사이클 처리를 모니터링하고 radosgw-admin lc list 및 radosgw-admin lc process 명령을 사용하여 버킷의 라이프사이클을 수동으로 처리할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- 라이프사이클 구성 정책이 적용된 S3 버킷 생성.
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 라이프사이클 진행 상황을 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 라이프사이클 처리 상태는 다음 중 하나일 수 있습니다.
- UNINITIAL - 프로세스가 아직 실행되지 않았습니다.
- PROCESSING - 프로세스가 현재 실행 중입니다.
- COMPLETE - 프로세스가 완료되었습니다.
선택 사항: 버킷 라이프사이클 정책을 수동으로 처리할 수 있습니다.
단일 버킷에 대한 라이프사이클 정책을 처리합니다.
구문
radosgw-admin lc process --bucket=BUCKET_NAME
radosgw-admin lc process --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin lc process --bucket=testbucket1
[ceph: root@host01 /]# radosgw-admin lc process --bucket=testbucket1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 버킷 라이프사이클 정책을 즉시 처리합니다.
예제
[ceph: root@host01 /]# radosgw-admin lc process
[ceph: root@host01 /]# radosgw-admin lc processCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
버킷 라이프사이클 정책을 나열합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.5. 라이프사이클 만료 창 구성 링크 복사링크가 클립보드에 복사되었습니다!
rgw_lifecycle_work_time 매개변수를 설정하여 라이프사이클 관리 프로세스가 매일 실행되는 시간을 설정할 수 있습니다. 기본적으로 라이프사이클 처리는 매일 자정에 한 번 수행됩니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
프로세스
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 라이프사이클 만료 시간을 설정합니다.
구문
ceph config set client.rgw rgw_lifecycle_work_time %D:%D-%D:%D
ceph config set client.rgw rgw_lifecycle_work_time %D:%D-%D:%DCopy to Clipboard Copied! Toggle word wrap Toggle overflow %d:%d-%d:%d 를
start_hour:start_minute-end_hour:end_minute로 바꿉니다.예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_lifecycle_work_time 06:00-08:00
[ceph: root@host01 /]# ceph config set client.rgw rgw_lifecycle_work_time 06:00-08:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
라이프사이클 만료 작업 시간을 검색합니다.
예제
[ceph: root@host01 /]# ceph config get client.rgw rgw_lifecycle_work_time 06:00-08:00
[ceph: root@host01 /]# ceph config get client.rgw rgw_lifecycle_work_time 06:00-08:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.6. 스토리지 클러스터 내에서 S3 버킷 라이프사이클 전환 링크 복사링크가 클립보드에 복사되었습니다!
버킷 라이프사이클 구성을 사용하여 개체를 관리할 수 있으므로 개체의 수명 동안 개체가 효과적으로 저장됩니다. 오브젝트 라이프사이클 전환 규칙을 사용하면 개체 수명 동안 오브젝트를 관리하고 효과적으로 저장할 수 있습니다. 오브젝트를 더 저렴한 스토리지 클래스, 아카이브로 전환하거나 삭제할 수도 있습니다.
다음과 같은 스토리지 클래스를 생성할 수 있습니다.
- I/O 민감한 워크로드의 경우 SSD 또는 NVMe와 같은 빠른 미디어
- 보관을 위해 SAS 또는 SATA와 같은 느린 미디어입니다.
핫 스토리지 클래스와 콜드 스토리지 클래스 간에 데이터 이동 일정을 생성할 수 있습니다. 지정된 시간 후에 이 동작을 예약하여 오브젝트가 만료되고 영구적으로 삭제되도록 예약할 수 있습니다. 예를 들어 오브젝트를 생성한 후 30일 후 스토리지 클래스로 전환하거나 오브젝트를 생성한 후 1년 후 스토리지 클래스로 보관할 수도 있습니다. 이 작업은 전환 규칙을 통해 수행할 수 있습니다. 이 규칙은 한 스토리지 클래스에서 다른 스토리지 클래스로의 오브젝트 전환에 적용됩니다. 라이프사이클 구성에는 < Rule> 요소를 사용하는 하나 이상의 규칙이 포함됩니다.
9.8.7. 하나의 스토리지 클래스에서 다른 스토리지 클래스로 오브젝트 전환 링크 복사링크가 클립보드에 복사되었습니다!
오브젝트 라이프사이클 전환 규칙을 사용하면 한 스토리지 클래스에서 다른 클래스로 오브젝트를 전환할 수 있습니다.
복제된 풀, 삭제 코딩된 풀 간에 데이터를 마이그레이션하거나, 삭제로 코딩된 풀로 복제하거나, Ceph Object Gateway 라이프사이클 전환 정책을 사용하여 복제된 풀로 삭제할 수 있습니다.
다중 사이트 구성에서 라이프사이클 전환 규칙이 첫 번째 사이트에 적용되면 동일한 스토리지 클러스터에 있는 한 데이터 풀에서 개체를 다른 데이터 풀로 전환하기 위해 두 번째 사이트에 해당 데이터 풀이 생성되고 rgw 애플리케이션을 사용하여 활성화되는 경우 두 번째 사이트에도 동일한 규칙이 적용됩니다.
사전 요구 사항
- Ceph Object Gateway 소프트웨어 설치.
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
새 데이터 풀을 생성합니다.
구문
ceph osd pool create POOL_NAME
ceph osd pool create POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd pool create test.hot.data
[ceph: root@host01 /]# ceph osd pool create test.hot.dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스토리지 클래스를 추가합니다.
구문
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스토리지 클래스의 영역 배치 정보를 제공합니다.
구문
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOL
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고쓰기를 한 번 사용하여 콜드 또는 아카이브 데이터 스토리지 풀을 생성할 때
compression_type을 설정하는 것이 좋습니다.데이터 풀에서
rgw애플리케이션을 활성화합니다.구문
ceph osd pool application enable POOL_NAME rgw
ceph osd pool application enable POOL_NAME rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd pool application enable test.hot.data rgw enabled application 'rgw' on pool 'test.hot.data'
[ceph: root@host01 /]# ceph osd pool application enable test.hot.data rgw enabled application 'rgw' on pool 'test.hot.data'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
모든
rgw데몬을 다시 시작합니다. 버킷을 생성합니다.
예제
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트를 추가합니다.
예제
[ceph: root@host01 /]# aws --endpoint=http://10.0.0.80:8080 s3api put-object --bucket testbucket10 --key compliance-upload --body /root/test2.txt
[ceph: root@host01 /]# aws --endpoint=http://10.0.0.80:8080 s3api put-object --bucket testbucket10 --key compliance-upload --body /root/test2.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 두 번째 데이터 풀을 생성합니다.
구문
ceph osd pool create POOL_NAME
ceph osd pool create POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd pool create test.cold.data
[ceph: root@host01 /]# ceph osd pool create test.cold.dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스토리지 클래스를 추가합니다.
구문
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS
radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스토리지 클래스의 영역 배치 정보를 제공합니다.
구문
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOL
radosgw-admin zone placement add --rgw-zone default --placement-id PLACEMENT_TARGET --storage-class STORAGE_CLASS --data-pool DATA_POOLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin zone placement add --rgw-zone default --placement-id default-placement --storage-class cold.test --data-pool test.cold.data
[ceph: root@host01 /]# radosgw-admin zone placement add --rgw-zone default --placement-id default-placement --storage-class cold.test --data-pool test.cold.dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 풀에서
rgw애플리케이션을 활성화합니다.구문
ceph osd pool application enable POOL_NAME rgw
ceph osd pool application enable POOL_NAME rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd pool application enable test.cold.data rgw enabled application 'rgw' on pool 'test.cold.data'
[ceph: root@host01 /]# ceph osd pool application enable test.cold.data rgw enabled application 'rgw' on pool 'test.cold.data'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
모든
rgw데몬을 다시 시작합니다. 영역 그룹 구성을 보려면 다음 명령을 실행합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 구성을 보려면 다음 명령을 실행합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷을 생성합니다.
예제
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080
[ceph: root@host01 /]# aws s3api create-bucket --bucket testbucket10 --create-bucket-configuration LocationConstraint=default:default-placement --endpoint-url http://10.0.0.80:8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 전환 전에 오브젝트를 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 라이프사이클 구성에 사용할 JSON 파일을 생성합니다.
예제
[ceph: root@host01 /]# vi lifecycle.json
[ceph: root@host01 /]# vi lifecycle.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파일에 특정 라이프사이클 구성 규칙을 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 라이프사이클 구성 예제에서는 5일 후 기본
STANDARD스토리지 클래스에서hot.test스토리지 클래스로 전환하고 20일 후cold.test스토리지 클래스로 다시 전환되며, 마지막으로cold.test스토리지 클래스에서 365일이 지나면 만료되는 오브젝트를 보여줍니다.버킷에서 라이프사이클 구성을 설정합니다.
예제
[ceph: root@host01 /]# aws s3api put-bucket-lifecycle-configuration --bucket testbucket10 --lifecycle-configuration file://lifecycle.json
[ceph: root@host01 /]# aws s3api put-bucket-lifecycle-configuration --bucket testbucket10 --lifecycle-configuration file://lifecycle.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷에서 라이프사이클 구성을 검색합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트가 지정된 스토리지 클래스로 전환되었는지 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.8. S3에 대한 오브젝트 잠금 활성화 링크 복사링크가 클립보드에 복사되었습니다!
S3 개체 잠금 메커니즘을 사용하면 보존 기간, 법적 보류, 버킷 구성과 같은 개체 잠금 개념을 사용하여 사용자 지정 워크플로우에서 데이터 삭제 권한을 재정의하는 사용자 지정 워크플로우의 일부로 WORM(Write-Once-Read-Many) 기능을 구현할 수 있습니다.
오브젝트 이름이 아닌 오브젝트 버전은 GOVERNANCE 또는 COMPLIANCE 모드를 지원하기 위해 오브젝트 잠금을 올바르게 수행하는 데 필요한 정의 및 필수 값입니다. 나중에 검색할 수 있도록 작성 시 오브젝트 버전을 알아야 합니다.
사전 요구 사항
- Ceph Object Gateway가 설치된 실행 중인 Red Hat Ceph Storage 클러스터
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- 버전-bucket 생성 액세스 권한이 있는 S3 사용자
프로세스
오브젝트 잠금이 활성화된 버킷을 생성합니다.
구문
aws --endpoint=http://RGW_PORT:8080 s3api create-bucket --bucket BUCKET_NAME --object-lock-enabled-for-bucket
aws --endpoint=http://RGW_PORT:8080 s3api create-bucket --bucket BUCKET_NAME --object-lock-enabled-for-bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint=http://rgw.ceph.com:8080 s3api create-bucket --bucket worm-bucket --object-lock-enabled-for-bucket
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api create-bucket --bucket worm-bucket --object-lock-enabled-for-bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 보존 기간을 설정합니다.
구문
aws --endpoint=http://RGW_PORT:8080 s3api put-object-lock-configuration --bucket BUCKET_NAME --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "RETENTION_MODE", "Days": NUMBER_OF_DAYS }}}'aws --endpoint=http://RGW_PORT:8080 s3api put-object-lock-configuration --bucket BUCKET_NAME --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "RETENTION_MODE", "Days": NUMBER_OF_DAYS }}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-lock-configuration --bucket worm-bucket --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 }}}'[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-lock-configuration --bucket worm-bucket --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 }}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고S3 개체 잠금의 RETENTION_MODE 의 GOVERNANCE 또는 COMPLIANCE 모드를 선택하여 오브젝트 잠금으로 보호되는 모든 오브젝트 버전에 다양한 수준의 보호를 적용할 수 있습니다.
GOVERNANCE 모드에서 사용자는 오브젝트 버전을 덮어쓰거나 삭제하거나 특별한 권한이 없는 경우 잠금 설정을 변경할 수 없습니다.
COMPLIANCE 모드에서는 AWS 계정의 root 사용자를 포함하여 보호된 오브젝트 버전을 사용자가 덮어쓰거나 삭제할 수 없습니다. 개체가 COMPLIANCE 모드로 잠겨 있으면 해당 RETENTION_MODE 를 변경할 수 없으며 보존 기간을 단축할 수 없습니다. COMPLIANCE 모드를 사용하면 기간 동안 오브젝트 버전을 덮어쓰거나 삭제할 수 없습니다.
보존 시간이 설정된 버킷에 오브젝트를 배치합니다.
구문
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body TEST_FILE
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body TEST_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body test.dd { "ETag": "\"d560ea5652951637ba9c594d8e6ea8c1\"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body test.dd { "ETag": "\"d560ea5652951637ba9c594d8e6ea8c1\"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동일한 키를 사용하여 새 오브젝트를 업로드합니다.
구문
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body PATH
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body /etc/fstab { "ETag": "\"d560ea5652951637ba9c594d8e6ea8c1\"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body /etc/fstab { "ETag": "\"d560ea5652951637ba9c594d8e6ea8c1\"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
명령줄 옵션
개체 버전에서 개체 잠금을 설정합니다.
예제
aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-legal-hold --bucket worm-bucket --key compliance-upload --legal-hold Status=ON
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-legal-hold --bucket worm-bucket --key compliance-upload --legal-hold Status=ONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고개체 잠금 법적 보류 작업을 사용하면 개체 버전에 법적 유지를 배치하여 개체 버전을 덮어쓰거나 삭제할 수 없습니다. 법적 유지에는 관련 보존 기간이 없으므로 제거될 때까지 계속 적용됩니다.
버킷의 오브젝트를 나열하여 최신 버전의 오브젝트만 검색합니다.
예제
aws --endpoint=http://rgw.ceph.com:8080 s3api list-objects --bucket worm-bucket
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api list-objects --bucket worm-bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 오브젝트 버전을 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow version-ids를 사용하여 오브젝트에 액세스합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.9. 사용법 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 각 사용자의 사용량을 기록합니다. 또한 날짜 범위 내에서 사용자 사용량을 추적할 수 있습니다.
옵션은 다음과 같습니다.
-
시작일 :
--start-date옵션을 사용하면 특정 시작 날짜 의 사용 통계를 필터링할 수 있습니다(예: yyyyy-mm-dd[HH:MM:SS]). -
종료일:
--end-date옵션을 사용하면 특정 날짜 까지 사용량을 필터링할 수 있습니다(예:yyyy-mm-dd[HH:MM:SS]). -
로그 항목:
--show-log-entries옵션을 사용하면 통계를 사용하여 로그 항목을 포함할지 여부를 지정할 수 있습니다(옵션:true|false).
분 및 초로 시간을 지정할 수 있지만 1시간 해상도로 저장됩니다.
9.9.1. 사용량 표시 링크 복사링크가 클립보드에 복사되었습니다!
사용량 통계를 표시하려면 사용량을 show 로 지정합니다. 특정 사용자의 사용량을 표시하려면 사용자 ID를 지정해야 합니다. 시작 날짜, 종료 날짜 및 로그 항목을 표시할지 여부를 지정할 수도 있습니다.
예제
[ceph: root@host01 /]# radosgw-admin usage show \
--uid=johndoe --start-date=2022-06-01 \
--end-date=2022-07-01
[ceph: root@host01 /]# radosgw-admin usage show \
--uid=johndoe --start-date=2022-06-01 \
--end-date=2022-07-01
사용자 ID를 생략하여 모든 사용자에 대한 사용 정보에 대한 요약을 표시할 수도 있습니다.
예제
[ceph: root@host01 /]# radosgw-admin usage show --show-log-entries=false
[ceph: root@host01 /]# radosgw-admin usage show --show-log-entries=false
9.9.2. Trim 사용 링크 복사링크가 클립보드에 복사되었습니다!
사용량이 많은 경우 사용 로그가 스토리지 공간을 차지하기 시작할 수 있습니다. 모든 사용자와 특정 사용자의 사용 로그를 트리밍할 수 있습니다. 트리밍 작업의 날짜 범위를 지정할 수도 있습니다.
예제
[ceph: root@host01 /]# radosgw-admin usage trim --start-date=2022-06-01 \
--end-date=2022-07-31
[ceph: root@host01 /]# radosgw-admin usage trim --uid=johndoe
[ceph: root@host01 /]# radosgw-admin usage trim --uid=johndoe --end-date=2021-04-31
[ceph: root@host01 /]# radosgw-admin usage trim --start-date=2022-06-01 \
--end-date=2022-07-31
[ceph: root@host01 /]# radosgw-admin usage trim --uid=johndoe
[ceph: root@host01 /]# radosgw-admin usage trim --uid=johndoe --end-date=2021-04-31
9.10. Ceph Object Gateway 데이터 레이아웃 링크 복사링크가 클립보드에 복사되었습니다!
RADOS는 확장 속성(xattrs) 및 개체 맵(OMAP)이 있는 풀 및 오브젝트에 대해서만 알고 있지만 Ceph Object Gateway는 개념적으로 Ceph Object Gateway를 사용하여 데이터를 세 가지 유형으로 구성합니다.
- 메타데이터
- 버킷 인덱스
- data
메타데이터
메타데이터 섹션에는 세 가지 섹션이 있습니다.
-
사용자: 사용자 정보를 보관합니다. -
bucket: 버킷 이름과 버킷 인스턴스 ID 간의 매핑이 있습니다. -
bucket.instance: 버킷 인스턴스 정보를 보관합니다.
다음 명령을 사용하여 메타데이터 항목을 볼 수 있습니다.
구문
radosgw-admin metadata get bucket:BUCKET_NAME radosgw-admin metadata get bucket.instance:BUCKET:BUCKET_ID radosgw-admin metadata get user:USER radosgw-admin metadata set user:USER
radosgw-admin metadata get bucket:BUCKET_NAME
radosgw-admin metadata get bucket.instance:BUCKET:BUCKET_ID
radosgw-admin metadata get user:USER
radosgw-admin metadata set user:USER
예제
[ceph: root@host01 /]# radosgw-admin metadata list [ceph: root@host01 /]# radosgw-admin metadata list bucket [ceph: root@host01 /]# radosgw-admin metadata list bucket.instance [ceph: root@host01 /]# radosgw-admin metadata list user
[ceph: root@host01 /]# radosgw-admin metadata list
[ceph: root@host01 /]# radosgw-admin metadata list bucket
[ceph: root@host01 /]# radosgw-admin metadata list bucket.instance
[ceph: root@host01 /]# radosgw-admin metadata list user
모든 메타데이터 항목은 단일 RADOS 오브젝트에 유지됩니다.
Ceph Object Gateway 오브젝트는 매니페스트, ACL(액세스 제어 목록), 콘텐츠 유형, ETag 및 사용자 정의 메타데이터와 같은 메타데이터가 포함된 헤드인 여러 RADOS 오브젝트로 구성될 수 있습니다. 메타데이터는 xattrs 에 저장됩니다. 헤드는 효율성과 원자성을 위해 최대 512KB의 오브젝트 데이터를 포함할 수도 있습니다. 매니페스트는 RADOS 오브젝트에서 각 오브젝트를 설명하는 방법을 설명합니다.
버킷 인덱스
이는 다른 종류의 메타데이터이며 별도로 보관합니다. 버킷 인덱스에는 RADOS 오브젝트에 키-값 맵이 있습니다. 기본적으로 버킷당 단일 RADOS 오브젝트이지만 여러 RADOS 오브젝트를 통해 맵을 분할할 수 있습니다.
맵 자체는 각 RADOS 오브젝트와 연결된 OMAP에 보관됩니다. 각 OMAP의 키는 오브젝트의 이름이며 이 값에는 버킷을 나열할 때 표시되는 메타데이터인 해당 오브젝트의 기본 메타데이터가 포함됩니다. 각 OMAP는 헤더를 보유하고 있으며 오브젝트 수, 총 크기 등과 같은 해당 헤더에 버킷 회계 메타데이터를 유지합니다.
radosgw-admin 툴을 사용하는 경우 툴과 Ceph Cluster가 동일한 버전인지 확인합니다. 일치하지 않는 버전 사용은 지원되지 않습니다.
OMAP는 확장 속성이 POSIX 파일과 연결되는 방법과 유사한 방식으로 오브젝트와 연결된 키-값 저장소입니다. 오브젝트의 OMAP는 오브젝트 스토리지에 물리적으로 위치하지 않지만 정확한 구현은 표시되지 않으며 Ceph Object Gateway에 부적합합니다.
data
오브젝트 데이터는 각 Ceph Object Gateway 오브젝트에 대해 하나 이상의 RADOS 오브젝트에 보관됩니다.
9.10.1. 오브젝트 조회 경로 링크 복사링크가 클립보드에 복사되었습니다!
오브젝트에 액세스할 때 REST API는 다음 세 가지 매개변수와 함께 Ceph Object Gateway로 제공됩니다.
- S3 또는 Swift의 계정 이름에 액세스 키가 있는 계정 정보
- 버킷 또는 컨테이너 이름
- 오브젝트 이름 또는 키
현재 Ceph Object Gateway는 계정 정보만 사용하여 사용자 ID를 찾고 액세스 제어를 위해 사용합니다. 버킷 이름과 오브젝트 키만 사용하여 풀의 오브젝트를 처리합니다.
계정 정보
Ceph Object Gateway의 사용자 ID는 문자열이며 일반적으로 사용자 자격 증명의 실제 사용자 이름이 해시되거나 매핑된 식별자가 아닙니다.
사용자 데이터에 액세스할 때 사용자 레코드는 default.rgw.meta 풀의 users.rgw.meta 풀에서 users.uid 네임스페이스를 사용하여 로드됩니다. .Bucket 이름은 root 네임스페이스를 사용하여 default.rgw.meta 풀에 표시됩니다. 버킷 레코드는 버킷 ID 역할을 하는 마커를 얻기 위해 로드됩니다.
오브젝트 이름
오브젝트는 default.rgw.buckets.data 풀에 있습니다. 개체 이름은 MARKER_KEY (예: default.7593.4_image.png )입니다. 여기서 마커는 default.7593.4 이고 키는 image.png 입니다. 이러한 연결된 이름은 구문 분석되지 않으며 RADOS에만 전달됩니다. 따라서 구분 기호의 선택이 중요하지 않고 모호성을 초래하지 않습니다. 동일한 이유로 오브젝트 이름(예: 키)에 슬래시가 허용됩니다.
9.10.1.1. 여러 데이터 풀 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 다른 사용자 버킷이 다른 RADOS 풀에 생성되도록 여러 데이터 풀을 생성할 수 있으므로 필요한 스케일링을 제공할 수 있습니다. 이러한 풀의 레이아웃 및 이름은 정책 설정을 통해 제어됩니다.
9.10.2. 버킷 및 오브젝트 목록 링크 복사링크가 클립보드에 복사되었습니다!
지정된 사용자에게 속하는 버킷은 USER_ID.buckets 라는 오브젝트의 OMAP에 나열됩니다(예: users 네임스페이스가 있는 . uiddefault.rgw.meta 풀에 있음). 이러한 오브젝트는 버킷을 나열하고, 버킷 콘텐츠를 업데이트할 때, 할당량과 같은 버킷 통계를 업데이트하고 검색할 때 액세스할 수 있습니다. 이러한 목록은 .rgw 풀의 버킷과 일관되게 유지됩니다.
이러한 OMAP 항목의 값은 user-visible, encoded class cls_user_bucket_entry 및 중첩된 클래스 cls_user_bucket 을 참조하십시오.
지정된 버킷에 속하는 오브젝트는 버킷 인덱스에 나열됩니다. index 오브젝트의 기본 이름 이름은 default.rgw.buckets.index 풀에서 .dir.MARKER 입니다.
9.10.3. Object Gateway 데이터 레이아웃 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
이는 Ceph Object Gateway의 데이터 레이아웃 매개변수 목록입니다.
알려진 풀:
.rgw.root- 지정되지 않은 리전, 영역 및 글로벌 정보 레코드, 오브젝트당 하나씩.
ZONE.rgw.control- 통지.N
ZONE.rgw.meta다양한 종류의 메타데이터가 있는 다중 네임스페이스
- namespace: root
BUCKET .bucket.meta.BUCKET:MARKER # put_bucket_instance_info()를 참조하십시오.
테넌트는 버킷을 모호하게 하는 데 사용되지만 버킷 인스턴스는 모호하지 않습니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - namespace: users.uid
USER 오브젝트에 사용자별 정보(RGWUserInfo) 및
USER.buckets 오브젝트의 omaps에 있는 사용자별 버킷목록을 포함합니다. 비어 있지 않은 경우USER는 테넌트를 포함할 수 있습니다.예제
prodtx$prodt test2.buckets prodtx$prodt.buckets test2
prodtx$prodt test2.buckets prodtx$prodt.buckets test2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - namespace: users.email
- 중요하지 않음
- namespace: users.keys
47UA98JSTJZ9YAN3OS3O
이를 통해 Ceph Object Gateway는 인증 중에 액세스 키를 통해 사용자를 조회할 수 있습니다.
- namespace: users.swift
- test:tester
ZONE.rgw.buckets.index-
오브젝트 이름은
.dir입니다.MARKER에는 각각 버킷 인덱스가 포함되어 있습니다. 인덱스가 분할되면 각 shard가 마커 뒤에 shard 인덱스를 추가합니다. ZONE.rgw.buckets.datadefault.7593.4__shadow_.488urDFerTYXavx4yAd-Op8mxehnvTI_1 MARKER_KEY
마커의 예는
default.16004.1또는default.7593.4입니다. 현재 형식은ZONE.INSTANCE_ID.BUCKET_ID이지만 생성되면 마커가 다시 구문 분석되지 않으므로 나중에 형식이 자유롭게 변경될 수 있습니다.
9.11. 데이터 수집에 대한 속도 제한 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway 구성으로 Red Hat Ceph Storage 클러스터에 오브젝트를 저장할 때 작업 및 대역폭을 기반으로 사용자와 버킷에 대한 속도 제한을 설정할 수 있습니다.
9.11.1. 스토리지 클러스터의 속도 제한의 목적 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성에서 사용자 및 버킷에 대한 속도 제한을 설정할 수 있습니다. 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수 및 사용자당 또는 버킷당 읽기/분당 바이트 수가 포함됩니다.
REST에서 GET 또는 HEAD 메서드를 사용하는 요청은 "읽기 요청"이고, 그 요청은 "쓰기 요청"입니다.
Ceph Object Gateway는 사용자 및 버킷 요청을 별도로 추적하고 다른 게이트웨이와 공유하지 않습니다. 즉, 구성된 원하는 제한을 활성 Object Gateway 수로 나누어야 합니다.
예를 들어, 사용자 A를 분당 10개의 ops로 제한해야 하고 클러스터에 두 개의 Ceph Object Gateway가 있는 경우 사용자 A에 대한 제한은 5개, 즉 두 개의 Ceph Object Gateway의 분당 10개의 ops가 있어야 합니다. Ceph Object Gateway 간에 요청의 균형을 조정하지 않으면 속도 제한이 악용되지 않을 수 있습니다. 예를 들어 ops 제한이 5개이고 Ceph Object Gateway 두 개가 있지만 로드 밸런서에서 해당 Ceph Object Gateway 중 하나에만 부하를 보내는 경우 Ceph Object Gateway마다 이 제한이 적용되므로 유효 제한은 5개의 ops가 됩니다.
버킷에 대해 제한에 도달했지만 사용자를 위해 도달하지 않거나 그 반대의 경우 요청도 취소됩니다.
대역폭 계산은 요청이 승인된 후 수행됩니다. 결과적으로 이 요청은 요청 중 버킷 또는 사용자가 대역폭 제한에 도달한 경우에도 진행됩니다.
Ceph Object Gateway는 구성된 값보다 사용된 바이트의 "debt"를 유지하고, "debt"가 지불될 때까지 이 사용자 또는 버킷이 더 많은 요청을 전송하지 못하도록 합니다. "debt" 최대 크기는 분당 max-read/write-bytes의 두 배입니다. 사용자 A에 분당 1바이트 읽기 제한이 있고 이 사용자가 1GB 오브젝트를 가져오려고 하면 사용자가 수행할 수 있습니다.
사용자 A가 이 1GB 작업을 완료하면 사용자 A가 GET 요청을 다시 보낼 수 있을 때까지 Ceph Object Gateway에서 최대 2분 동안 사용자 요청을 차단합니다.
속도 제한에 대한 다양한 옵션:
-
버킷:
--bucket옵션을 사용하면 버킷에 대한 속도 제한을 지정할 수 있습니다. -
user:
--uid옵션을 사용하면 사용자의 속도 제한을 지정할 수 있습니다. -
최대 읽기 작업:
--max-read-ops설정을 사용하면 Ceph Object Gateway당 분당 최대 읽기 ops 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
최대 읽기 바이트:
--max-read-bytes설정을 사용하면 Ceph Object Gateway당 분당 최대 읽기 바이트 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
최대 쓰기 작업:
--max-write-ops설정을 사용하면 Ceph Object Gateway당 분당 최대 쓰기 작업 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
최대 쓰기 바이트:
--max-write-bytes설정을 사용하면 Ceph Object Gateway당 분당 최대 쓰기 바이트 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
rate limit 범위:
--rate-limit-scope옵션은 속도 제한 범위를 설정합니다. 옵션은버킷,사용자및익명입니다. 버킷 속도 제한은 버킷에 적용되며, 사용자 속도 제한이 사용자에게 적용되며, 인증되지 않은 사용자에게 익명이 적용됩니다. 익명 범위는 글로벌 속도 제한에서만 사용할 수 있습니다.
9.11.2. 사용자 속도 제한 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성에서 사용자에 대한 속도 제한을 설정할 수 있습니다. 사용자의 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수, 사용자당 쓰기 또는 읽을 수 있는 분당 바이트 수가 포함됩니다.
ratelimit-scope 가 사용자로 설정된 radosgw-admin ratelimit set 명령을 사용하여 속도 제한 값을 설정한 후 사용자에 게 속도 제한을 활성화할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있어야 합니다.
프로세스
사용자의 유량 제한을 설정합니다.
구문
radosgw-admin ratelimit set --ratelimit-scope=user --uid=USER_ID [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin ratelimit set --ratelimit-scope=user --uid=USER_ID [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240Copy to Clipboard Copied! Toggle word wrap Toggle overflow NUMBER_OF_OPERATIONS 또는 NUMBER_OF_BYTES 의 경우
0값은 특정 속도 제한 특성 검사가 비활성화되어 있음을 의미합니다.사용자 속도 제한을 가져옵니다.
구문
radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 속도 제한을 활성화합니다.
구문
radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자 속도 제한을 비활성화합니다.
구문
radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testing
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.11.3. 버킷 속도 제한 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성에서 버킷에 대한 속도 제한을 설정할 수 있습니다. 버킷의 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수, 사용자당 쓰기 또는 읽을 수 있는 분당 바이트 수가 포함됩니다.
ratelimit-scope 가 버킷으로 설정된 radosgw-admin ratelimit set 명령을 사용하여 속도 제한 값을 설정한 후 버킷에 속도 제한을 활성화할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있어야 합니다.
프로세스
버킷의 속도 제한을 설정합니다.
구문
radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket= BUCKET_NAME [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket= BUCKET_NAME [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240Copy to Clipboard Copied! Toggle word wrap Toggle overflow NUMBER_OF_OPERATIONS 또는 NUMBER_OF_BYTES 의 경우
0값은 특정 속도 제한 특성 검사가 비활성화되어 있음을 의미합니다.버킷 속도 제한을 가져옵니다.
구문
radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 속도 제한을 활성화합니다.
구문
radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 버킷 속도 제한을 비활성화합니다.
구문
radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucket
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.11.4. 글로벌 속도 제한 구성 링크 복사링크가 클립보드에 복사되었습니다!
기간 구성에서 글로벌 속도 제한 설정을 읽거나 쓸 수 있습니다. ratelimit 세트 , 설정을 조작하여 사용자 또는 버킷 속도 제한 구성을 덮어쓸 수 있습니다.
ratelimit enable, ratelimit enable 및 ratelimit disable 명령인 global ratelimit 매개변수를 사용하여 글로벌 속도 제한
영역과 기간이 있는 다중 사이트 구성에서 글로벌 속도 제한에 대한 변경 사항을 period update --commit 명령을 사용하여 커밋해야 합니다. 기간이 없는 경우 변경 사항을 적용하려면 Ceph Object Gateway를 다시 시작해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있어야 합니다.
프로세스
글로벌 속도 제한 설정을 확인합니다.
구문
radosgw-admin global ratelimit get
radosgw-admin global ratelimit getCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷에 대한 속도 제한 범위를 구성하고 활성화합니다.
버킷에 대한 글로벌 속도 제한을 설정합니다.
구문
radosgw-admin global ratelimit set --ratelimit-scope=bucket [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=bucket [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 속도 제한을 활성화합니다.
구문
radosgw-admin global ratelimit enable --ratelimit-scope=bucket
radosgw-admin global ratelimit enable --ratelimit-scope=bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucket
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
인증된 사용자의 속도 제한 범위를 구성하고 활성화합니다.
사용자의 글로벌 속도 제한을 설정합니다.
구문
radosgw-admin global ratelimit set --ratelimit-scope=user [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=user [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 속도 제한을 활성화합니다.
구문
radosgw-admin global ratelimit enable --ratelimit-scope=user
radosgw-admin global ratelimit enable --ratelimit-scope=userCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=user
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=userCopy to Clipboard Copied! Toggle word wrap Toggle overflow
인증되지 않은 사용자의 속도 제한 범위를 구성하고 활성화합니다.
인증되지 않은 사용자의 글로벌 속도 제한을 설정합니다.
구문
radosgw-admin global ratelimit set --ratelimit-scope=anonymous [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=anonymous [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 속도 제한을 활성화합니다.
구문
radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
radosgw-admin global ratelimit enable --ratelimit-scope=anonymousCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymousCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.12. Ceph Object Gateway의 가비지 컬렉션 최적화 링크 복사링크가 클립보드에 복사되었습니다!
새 데이터 오브젝트가 스토리지 클러스터에 작성되면 Ceph Object Gateway에서 이러한 새 오브젝트에 즉시 스토리지를 할당합니다. 스토리지 클러스터에서 데이터 오브젝트를 삭제하거나 덮어쓰면 Ceph Object Gateway는 버킷 인덱스에서 해당 오브젝트를 삭제합니다. 잠시 후 Ceph Object Gateway는 스토리지 클러스터에 오브젝트를 저장하는 데 사용된 공간을 제거합니다. 스토리지 클러스터에서 삭제된 오브젝트 데이터를 제거하는 프로세스를 Garbage Collection 또는 GC라고 합니다.
가비지 컬렉션 작업은 일반적으로 백그라운드에서 실행됩니다. 이러한 작업을 지속적으로 실행하거나 활동이 낮은 워크로드 및 간단한 워크로드 간격 동안만 실행되도록 구성할 수 있습니다. 기본적으로 Ceph Object Gateway는 GC 작업을 지속적으로 수행합니다. GC 작업은 Ceph Object Gateway 작업의 정상적인 부분이므로 가비지 컬렉션을 받을 수 있는 삭제된 오브젝트는 대부분 존재합니다.
9.12.1. 가비지 컬렉션 대기열 보기 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클러스터에서 삭제 및 덮어쓰는 오브젝트를 제거하기 전에 radosgw-admin 을 사용하여 가비지 컬렉션을 기다리는 오브젝트를 확인합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway에 대한 루트 수준 액세스.
프로세스
가비지 컬렉션을 기다리는 개체의 큐를 보려면 다음을 수행합니다.
예제
[ceph: root@host01 /]# radosgw-admin gc list
[ceph: root@host01 /]# radosgw-admin gc listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
만료되지 않은 항목을 포함하여 큐의 모든 항목을 나열하려면 --include-all 옵션을 사용합니다.
9.12.2. Garbage 컬렉션 설정 조정 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway는 새로 작성한 오브젝트와 덮어쓰는 오브젝트에 즉시 스토리지를 할당합니다. 또한 다중 파트 업로드 부분에서도 일부 스토리지가 사용됩니다.
Ceph Object Gateway는 버킷 인덱스에서 오브젝트를 삭제한 후 삭제된 오브젝트에 사용되는 스토리지 공간을 제거합니다. 마찬가지로 Ceph Object Gateway는 다중 부분 업로드가 완료된 후 또는 업로드가 비활성화되거나 구성 가능한 시간 동안 완료되지 못한 경우 다중 파트 업로드와 연결된 데이터를 삭제합니다. Red Hat Ceph Storage 클러스터에서 삭제된 개체 데이터를 제거하는 프로세스를 GC(가비지 컬렉션)라고 합니다.
가비지 컬렉션을 기다리는 오브젝트는 다음 명령을 사용하여 수행할 수 있습니다.
radosgw-admin gc list
radosgw-admin gc list
가비지 컬렉션은 스토리지 관리자가 Ceph Object Gateway를 구성하는 방법에 따라 지속적으로 또는 낮은 로드 시간 동안 실행되는 백그라운드 활동입니다. 기본적으로 Ceph Object Gateway는 가비지 컬렉션 작업을 지속적으로 수행합니다. 가비지 컬렉션 작업은 Ceph Object Gateway의 정상적인 기능이며, 특히 오브젝트 삭제 작업과 함께 가비지 컬렉션에 적합한 개체는 대부분 존재합니다.
일부 워크로드는 가비지 컬렉션 활동 속도를 일시적으로 또는 영구적으로 비활성화할 수 있습니다. 이는 특히 많은 오브젝트가 짧은 기간 동안 저장되고 삭제되는 삭제가 많은 워크로드에 적용됩니다. 이러한 유형의 워크로드의 경우 스토리지 관리자는 다음 구성 매개변수를 사용하여 다른 작업과 관련된 가비지 수집 작업의 우선 순위를 높일 수 있습니다.
-
rgw_gc_obj_min_wait구성 옵션은 삭제된 오브젝트 데이터를 제거하기 전에 최소 시간(초)을 기다립니다. 기본값은 2시간 또는 7200초입니다. 클라이언트가 오브젝트를 읽을 수 있기 때문에 개체가 즉시 제거되지 않습니다. 워크로드가 많은 경우 이 설정은 너무 많은 스토리지를 사용하거나 제거할 삭제된 오브젝트를 많이 보유할 수 있습니다. Red Hat은 이 값을 30분 이하 또는 1800초 미만으로 설정하지 않는 것이 좋습니다. -
rgw_gc_processor_period구성 옵션은 가비지 컬렉션 런타임입니다. 즉 가비지 컬렉션 스레드의 연속 실행 사이의 시간입니다. 가비지 컬렉션이 이 기간보다 오래 실행되는 경우 가비지 컬렉션 사이클을 다시 실행하기 전에 Ceph Object Gateway가 기다리지 않습니다. -
rgw_gc_max_concurrent_io구성 옵션은 삭제된 데이터를 제거할 때 게이트웨이 가비지 컬렉션 스레드가 사용할 동시 IO 작업의 최대 수를 지정합니다. 많은 워크로드를 삭제하면 이 설정을 다수의 동시 IO 작업으로 늘리는 것이 좋습니다. -
rgw_gc_max_trim_chunk구성 옵션은 단일 작업에서 가비지 수집기 로그에서 제거할 최대 키 수를 지정합니다. 삭제에 따른 작업에서 각 가비지 수집 작업 중에 더 많은 오브젝트가 제거되도록 최대 키 수를 늘리는 것이 좋습니다.
Red Hat Ceph Storage 4.1부터 가비지 컬렉션 로그에서 인덱스 오브젝트의 OMAP를 오프로드하면 스토리지 클러스터에 대한 가비지 수집 작업의 성능 영향을 줄일 수 있습니다. 다음과 같이 몇 가지 새로운 구성 매개 변수가 Ceph Object Gateway에 추가되어 가비지 컬렉션 큐를 조정합니다.
-
rgw_gc_max_deferred_entries_size구성 옵션은 가비지 컬렉션 큐에서 지연된 항목의 최대 크기를 설정합니다. -
rgw_gc_max_queue_size구성 옵션은 가비지 컬렉션에 사용되는 최대 큐 크기를 설정합니다. 이 값은osd_max_object_size-rgw_gc_max_deferred_entries_size- 1KB보다 크지 않아야 합니다. -
rgw_gc_max_deferred구성 옵션은 가비지 컬렉션 큐에 저장된 지연된 최대 항목 수를 설정합니다.
이러한 가비지 컬렉션 구성 매개변수는 Red Hat Ceph Storage 7 이상용입니다.
50% 삭제 및 50% 쓰기 작업과 같은 균등하게 균형 있는 삭제-쓰기 워크로드로 스토리지 클러스터가 11시간 내에 완전히 채워집니다. Ceph Object Gateway 가비지 컬렉션이 삭제 작업의 속도를 유지하지 못하기 때문입니다. 이 경우 클러스터 상태가 HEALTH_ERR 상태로 전환됩니다. 병렬 가비지 컬렉션 튜닝 가능 항목에 대한 공격적인 설정은 스토리지 클러스터 세트 테스트가 크게 지연되고 많은 워크로드에 도움이 될 수 있습니다. 일반적인 실제 스토리지 클러스터 워크로드는 주로 가비지 컬렉션으로 인해 스토리지 클러스터가 채워지지 않을 수 있습니다.
9.12.3. 삭제가 필요한 워크로드에 대한 가비지 컬렉션 조정 링크 복사링크가 클립보드에 복사되었습니다!
일부 워크로드는 가비지 컬렉션 활동 속도를 일시적으로 또는 영구적으로 비활성화할 수 있습니다. 이는 특히 짧은 기간 동안 많은 오브젝트가 저장되고 삭제되는 삭제와 관련된 워크로드에서 특히 그러합니다. 이러한 유형의 워크로드의 경우 다른 작업과 관련된 가비지 수집 작업의 우선 순위를 늘리는 것이 좋습니다. Ceph Object Gateway Garbage Collection에 대한 추가 질문이 있는 경우 Red Hat 지원팀에 문의하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 루트 수준 액세스.
프로세스
rgw_gc_max_concurrent_io값을20으로 설정하고rgw_gc_max_trim_chunk의 값을64로 설정합니다.예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_gc_max_concurrent_io 20 [ceph: root@host01 /]# ceph config set client.rgw rgw_gc_max_trim_chunk 64
[ceph: root@host01 /]# ceph config set client.rgw rgw_gc_max_concurrent_io 20 [ceph: root@host01 /]# ceph config set client.rgw rgw_gc_max_trim_chunk 64Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Ceph Object Gateway를 다시 시작하여 변경된 설정을 적용할 수 있습니다.
- GC 활동 중에 스토리지 클러스터를 모니터링하여 증가된 값이 성능에 부정적인 영향을 미치지 않는지 확인합니다.
실행 중인 클러스터에서 rgw_gc_max_objs 옵션의 값을 수정하지 마십시오. RGW 노드를 배포하기 전에 이 값을 변경해야 합니다.
9.13. Ceph Object Gateway의 데이터 개체 스토리지 최적화 링크 복사링크가 클립보드에 복사되었습니다!
버킷 라이프사이클 구성은 데이터 오브젝트 스토리지를 최적화하여 효율성을 높이고 데이터 수명 동안 효과적인 스토리지를 제공합니다.
Ceph Object Gateway의 S3 API는 현재 AWS 버킷 라이프사이클 구성 작업의 하위 집합을 지원합니다.
- 만료
- NoncurrentVersionExpiration
- AbortIncompleteMultipartUpload
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 루트 수준 액세스.
9.13.1. 버킷 라이프사이클에 대한 병렬 스레드 처리 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway를 사용하면 여러 Ceph Object Gateway 인스턴스에서 버킷 라이프사이클의 병렬 스레드 처리를 수행할 수 있습니다. 병렬로 실행되는 스레드 수를 늘리면 Ceph Object Gateway에서 대규모 워크로드를 보다 효율적으로 처리할 수 있습니다. 또한 Ceph Object Gateway는 이제 in-order numbering을 사용하는 대신 인덱스 shard 열거에 번호가 지정된 시퀀스를 사용합니다.
9.13.2. 버킷 라이프사이클 최적화 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 구성 파일의 두 가지 옵션은 버킷 라이프사이클 처리 효율성에 영향을 미칩니다.
-
rgw_lc_max_worker은 병렬로 실행할 라이프사이클 작업자 스레드 수를 지정합니다. 이를 통해 버킷 및 인덱스 샤드를 동시에 처리할 수 있습니다. 이 옵션의 기본값은 3입니다. -
rgw_lc_max_wp_worker은 각 라이프사이클 작업자 스레드의 작업 풀에 있는 스레드 수를 지정합니다. 이 옵션은 각 버킷에 대한 처리를 가속화하는 데 도움이 됩니다. 이 옵션의 기본값은 3입니다.
버킷이 많은 워크로드의 경우, 예를 들어 버킷의 수천 개가 있는 워크로드는 rgw_lc_max_worker 옵션의 값을 늘립니다.
버킷 수가 작지만 각 버킷에 더 많은 수의 오브젝트가 있는 워크로드의 경우, 수백 개의 thousands Cryostat- Cryostatconsider와 같이 rgw_lc_max_wp_worker 옵션의 값을 늘리면 됩니다.
이러한 옵션 중 하나의 값을 늘리기 전에 현재 스토리지 클러스터 성능과 Ceph Object Gateway 사용률을 확인하십시오. 이 옵션 중 하나에 대해 값을 10개 이상 할당하는 것은 권장되지 않습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 루트 수준 액세스.
프로세스
병렬로 실행할 스레드 수를 늘리려면
rgw_lc_max_worker값을3에서9사이의 값으로 설정합니다.예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_lc_max_worker 7
[ceph: root@host01 /]# ceph config set client.rgw rgw_lc_max_worker 7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 스레드의 작업 풀의 스레드 수를 늘리려면
rgw_lc_max_wp_worker의 값을3에서9사이의 값으로 설정합니다.예제
[ceph: root@host01 /]# ceph config set client.rgw rgw_lc_max_wp_worker 7
[ceph: root@host01 /]# ceph config set client.rgw rgw_lc_max_wp_worker 7Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Ceph Object Gateway를 다시 시작하여 변경된 설정을 적용할 수 있습니다.
- 스토리지 클러스터를 모니터링하여 증가한 값이 성능에 부정적인 영향을 미치지 않는지 확인합니다.
9.14. Amazon S3 클라우드 서비스로 데이터 전환 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클래스를 사용하여 라이프사이클 구성의 일부로 데이터를 원격 클라우드 서비스로 전환하여 비용을 줄이고 관리 효율성을 개선할 수 있습니다. 전환은 단방향이며 데이터는 원격 영역에서 다시 전환할 수 없습니다. 이 기능은 Amazon(S3)과 같은 여러 클라우드 공급자로 데이터 전환을 활성화하는 것입니다.
cloud-s3 을 계층 유형으로 사용하여 데이터를 전환해야 하는 원격 클라우드 S3 오브젝트 저장소 서비스를 구성합니다. 여기에는 데이터 풀이 필요하지 않으며 zonegroup 배치 대상의 관점에서 정의됩니다.
사전 요구 사항
- Ceph Object Gateway가 설치된 Red Hat Ceph Storage 클러스터입니다.
- 원격 클라우드 서비스에 대한 사용자 인증 정보, Amazon S3.
- Amazon S3에서 생성된 대상 경로입니다.
-
부트스트랩 노드에
s3cmd가 설치되어 있어야 합니다. - Amazon AWS는 데이터를 다운로드하도록 로컬로 구성되었습니다.
프로세스
액세스 키와 시크릿 키가 있는 사용자를 생성합니다.
구문
radosgw-admin user create --uid=USER_NAME --display-name="DISPLAY_NAME" [--access-key ACCESS_KEY --secret-key SECRET_KEY]
radosgw-admin user create --uid=USER_NAME --display-name="DISPLAY_NAME" [--access-key ACCESS_KEY --secret-key SECRET_KEY]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 부트스트랩된 노드에서 계층 유형이 있는 스토리지 클래스를
cloud-s3으로 추가합니다.참고--tier-type=cloud-s3옵션을 사용하여 스토리지 클래스를 생성하면 나중에 다른 스토리지 클래스 유형으로 수정할 수 없습니다.구문
radosgw-admin zonegroup placement add --rgw-zonegroup =ZONE_GROUP_NAME \ --placement-id=PLACEMENT_ID \ --storage-class =STORAGE_CLASS_NAME \ --tier-type=cloud-s3radosgw-admin zonegroup placement add --rgw-zonegroup =ZONE_GROUP_NAME \ --placement-id=PLACEMENT_ID \ --storage-class =STORAGE_CLASS_NAME \ --tier-type=cloud-s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow update
storage_class:참고클러스터가 다중 사이트 설정의 일부인 경우
period update --commit를 실행하여 zonegroup 변경 사항이 다중 사이트의 모든 영역으로 전파됩니다.참고access_key및secret이 숫자로 시작하지 않는지 확인합니다.필수 매개변수는 다음과 같습니다.
-
access_key는 특정 연결에 사용되는 원격 클라우드 S3 액세스 키입니다. -
Secret은 원격 클라우드 S3 서비스의 시크릿 키입니다. -
endpoint는 원격 클라우드 S3 서비스 끝점의 URL입니다. -
리전(AWS의 경우)은 원격 클라우드 S3 서비스 지역 이름입니다.
선택적 매개변수는 다음과 같습니다.
-
target_path는 대상 경로가 생성되는 방법을 정의합니다. 대상 경로는 소스bucket-name/object-name이 추가되는 접두사를 지정합니다. 지정하지 않으면 생성된 target_path가rgwx-ZONE_GROUP_NAME-STORAGE_CLASS_NAME-cloud-bucket입니다. -
target_storage_class는 오브젝트가 전환하는 대상 스토리지 클래스를 정의합니다. 지정하지 않으면 오브젝트가 STANDARD 스토리지 클래스로 전환됩니다. -
retain_head_objecttrue인 경우 cloud로 전환된 오브젝트의 메타데이터를 유지합니다. false(기본값)인 경우 오브젝트는 전환 후 삭제됩니다. 이 옵션은 현재 버전이 지정된 오브젝트에서 무시됩니다. -
multipart_sync_threshold는 이 크기 이상의 오브젝트가 다중 파트 업로드를 사용하여 클라우드로 전환되도록 지정합니다. multipart_min_part_size는 multipart 업로드를 사용하여 오브젝트를 전환할 때 사용할 최소 부분 크기를 지정합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Ceph Object Gateway를 다시 시작합니다.
구문
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’Copy to Clipboard Copied! Toggle word wrap Toggle overflow 쉘을 종료하고 root 사용자로 부트스트랩된 노드에서 Amazon S3를 구성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 버킷을 생성합니다.
구문
s3cmd mb s3://NAME_OF_THE_BUCKET_FOR_S3
s3cmd mb s3://NAME_OF_THE_BUCKET_FOR_S3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
s3cmd mb s3://awstestbucket Bucket 's3://awstestbucket/' created
[root@host01 ~]# s3cmd mb s3://awstestbucket Bucket 's3://awstestbucket/' createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 생성하고 모든 데이터를 입력하고 이를 S3 서비스로 이동합니다.
구문
s3cmd put FILE_NAME s3://NAME_OF_THE_BUCKET_ON_S3
s3cmd put FILE_NAME s3://NAME_OF_THE_BUCKET_ON_S3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
s3cmd put test.txt s3://awstestbucket upload: 'test.txt' -> 's3://awstestbucket/test.txt' [1 of 1] 21 of 21 100% in 1s 16.75 B/s done
[root@host01 ~]# s3cmd put test.txt s3://awstestbucket upload: 'test.txt' -> 's3://awstestbucket/test.txt' [1 of 1] 21 of 21 100% in 1s 16.75 B/s doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 라이프사이클 구성 전환 정책을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 라이프사이클 구성 전환 정책을 설정합니다.
구문
s3cmd setlifecycle FILE_NAME s3://NAME_OF_THE_BUCKET_FOR_S3
s3cmd setlifecycle FILE_NAME s3://NAME_OF_THE_BUCKET_FOR_S3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
s3cmd setlifecycle lc_config.xml s3://awstestbucket s3://awstestbucket/: Lifecycle Policy updated
[root@host01 ~]# s3cmd setlifecycle lc_config.xml s3://awstestbucket s3://awstestbucket/: Lifecycle Policy updatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm 쉘에로그인합니다.예제
cephadm shell
[root@host 01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 다시 시작합니다.
구문
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
소스 클러스터에서
radosgw-admin lc list명령을 사용하여 데이터가 S3로 이동했는지 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라우드 끝점에서 오브젝트 전환을 확인합니다.
예제
radosgw-admin bucket list [ "awstestbucket" ][root@client ~]$ radosgw-admin bucket list [ "awstestbucket" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 오브젝트를 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 버킷의 콘텐츠를 나열합니다.
예제
s3cmd ls s3://awstestbucket 2022-08-25 09:57 0 s3://awstestbucket/test.txt
[root@host01 ~]# s3cmd ls s3://awstestbucket 2022-08-25 09:57 0 s3://awstestbucket/test.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파일의 정보를 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Amazon S3에서 로컬로 데이터를 다운로드합니다.
AWS를 구성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 버킷의 콘텐츠를 나열합니다.
예제
aws s3 ls s3://dfqe-bucket-01/awstest PRE awstestbucket/
[client@client01 ~]$ aws s3 ls s3://dfqe-bucket-01/awstest PRE awstestbucket/Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3에서 데이터를 다운로드합니다.
예제
aws s3 cp s3://dfqe-bucket-01/awstestbucket/test.txt . download: s3://dfqe-bucket-01/awstestbucket/test.txt to ./test.txt
[client@client01 ~]$ aws s3 cp s3://dfqe-bucket-01/awstestbucket/test.txt . download: s3://dfqe-bucket-01/awstestbucket/test.txt to ./test.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.15. Azure 클라우드 서비스로 데이터 전환 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클래스를 사용하여 라이프사이클 구성의 일부로 데이터를 원격 클라우드 서비스로 전환하여 비용을 줄이고 관리 효율성을 개선할 수 있습니다. 전환은 단방향이며 데이터는 원격 영역에서 다시 전환할 수 없습니다. 이 기능은 Azure와 같은 여러 클라우드 공급자로 데이터 전환을 활성화하는 것입니다. AWS 구성과의 주요 차이점 중 하나는 MCG(Multi-cloud Gateway)를 구성하고 MCG를 사용하여 S3 프로토콜에서 Azure Blob으로 변환해야 한다는 것입니다.
cloud-s3 을 계층 유형으로 사용하여 데이터를 전환해야 하는 원격 클라우드 S3 오브젝트 저장소 서비스를 구성합니다. 여기에는 데이터 풀이 필요하지 않으며 zonegroup 배치 대상의 관점에서 정의됩니다.
사전 요구 사항
- Ceph Object Gateway가 설치된 Red Hat Ceph Storage 클러스터입니다.
- 원격 클라우드 서비스의 사용자 인증 정보인 Azure.
- Azure는 데이터를 다운로드하기 위해 로컬로 구성되었습니다.
-
부트스트랩 노드에
s3cmd가 설치되어 있어야 합니다. -
MCG 네임스페이스의 에 대한 Azure 컨테이너를 생성합니다. 이 예에서는
mcgnamespace입니다.
프로세스
액세스 키와 시크릿 키가 있는 사용자를 생성합니다.
구문
radosgw-admin user create --uid=USER_NAME --display-name="DISPLAY_NAME" [--access-key ACCESS_KEY --secret-key SECRET_KEY]
radosgw-admin user create --uid=USER_NAME --display-name="DISPLAY_NAME" [--access-key ACCESS_KEY --secret-key SECRET_KEY]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow root 사용자로 사용자 인증 정보를 사용하여 AWS CLI를 구성하고 기본 배치를 사용하여 버킷을 생성합니다.
구문
aws s3 --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL --region default mb s3://BUCKET_NAME
aws s3 --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL --region default mb s3://BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default mb s3://transition
[root@host01 ~]$ aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default mb s3://transitionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이 배치 규칙과 함께
default-placement를 사용하고 있는지 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Data Foundation(ODF)이 배포된 OpenShift Container Platform (OCP) 클러스터에 로그인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure의 OCP 클러스터에서 실행되는 MCG(Multi-cloud gateway) 네임스페이스 Azure 버킷을 구성합니다.
구문
noobaa namespacestore create azure-blob az --account-key='ACCOUNT_KEY' --account-name='ACCOUNT_NAME' --target-blob-container='_AZURE_CONTAINER_NAME'
noobaa namespacestore create azure-blob az --account-key='ACCOUNT_KEY' --account-name='ACCOUNT_NAME' --target-blob-container='_AZURE_CONTAINER_NAME'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
noobaa namespacestore create azure-blob az --account-key='iq3+6hRtt9bQ46QfHKQ0nSm2aP+tyMzdn8dBSRW4XWrFhY+1nwfqEj4hk2q66nmD85E/o5OrrUqo+AStkKwm9w==' --account-name='transitionrgw' --target-blob-container='mcgnamespace'
[root@host01 ~]$ noobaa namespacestore create azure-blob az --account-key='iq3+6hRtt9bQ46QfHKQ0nSm2aP+tyMzdn8dBSRW4XWrFhY+1nwfqEj4hk2q66nmD85E/o5OrrUqo+AStkKwm9w==' --account-name='transitionrgw' --target-blob-container='mcgnamespace'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스 저장소를가리키는 MCG 버킷 클래스를 생성합니다.예제
noobaa bucketclass create namespace-bucketclass single aznamespace-bucket-class --resource az -n openshift-storage
[root@host01 ~]$ noobaa bucketclass create namespace-bucketclass single aznamespace-bucket-class --resource az -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클라우드로의 전환을 위한 OBC(오브젝트 버킷 클레임)를 생성합니다.
구문
noobaa obc create OBC_NAME --bucketclass aznamespace-bucket-class -n openshift-storage
noobaa obc create OBC_NAME --bucketclass aznamespace-bucket-class -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
noobaa obc create rgwobc --bucketclass aznamespace-bucket-class -n openshift-storage
[root@host01 ~]$ noobaa obc create rgwobc --bucketclass aznamespace-bucket-class -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고OBC에서 제공하는 인증 정보를 사용하여 Ceph Object Gateway에서 영역 그룹 배치를 구성합니다.
부트스트랩 노드에서 Azure에서 이전에 구성한 MCG의 기본 영역 그룹 내의 기본 배치에서 계층 유형을
cloud-s3으로 사용하여 스토리지 클래스를 생성합니다.참고--tier-type=cloud-s3옵션을 사용하여 스토리지 클래스를 생성하면 나중에 다른 스토리지 클래스 유형으로 수정할 수 없습니다.구문
radosgw-admin zonegroup placement add --rgw-zonegroup =ZONE_GROUP_NAME \ --placement-id=PLACEMENT_ID \ --storage-class =STORAGE_CLASS_NAME \ --tier-type=cloud-s3radosgw-admin zonegroup placement add --rgw-zonegroup =ZONE_GROUP_NAME \ --placement-id=PLACEMENT_ID \ --storage-class =STORAGE_CLASS_NAME \ --tier-type=cloud-s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라우드 S3 클라우드 스토리지 클래스를 구성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요retain_head_object매개변수를true로 설정하면 전환된 오브젝트를 나열할 오브젝트의 메타데이터 또는 헤드가 유지됩니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway를 다시 시작합니다.
구문
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host 01 /]# ceph orch restart client.rgw.objectgwhttps.host02.udyllp Scheduled to restart client.rgw.objectgwhttps.host02.udyllp on host 'host02
[ceph: root@host 01 /]# ceph orch restart client.rgw.objectgwhttps.host02.udyllp Scheduled to restart client.rgw.objectgwhttps.host02.udyllp on host 'host02Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에 생성된 버킷에 대한 라이프사이클 구성 전환 정책을 생성합니다. 이 예에서 버킷은
전환입니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고30일이 지난 버킷의 모든 오브젝트는
AZURE라는 클라우드 스토리지 클래스로 전송됩니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS CLI를 사용하여 버킷 라이프사이클 구성을 적용합니다.
구문
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default put-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAME
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default put-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
aws s3api --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default put-bucket-lifecycle-configuration --lifecycle-configuration file://transition.json --bucket transition
[root@host01 ~]$ aws s3api --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default put-bucket-lifecycle-configuration --lifecycle-configuration file://transition.json --bucket transitionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 라이프사이클 구성을 가져옵니다.
구문
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default get-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAME
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default get-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
radosgw-admin lc list명령을 사용하여 라이프사이클 구성을 가져옵니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고UNINITAL상태는 라이프사이클 구성이 처리되지 않음을 나타냅니다. 전환 프로세스가 완료된 후COMPLETED상태로 이동합니다.cephadm 쉘에로그인합니다.예제
cephadm shell
[root@host 01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 데몬을 다시 시작합니다.
구문
ceph orch daemon CEPH_OBJECT_GATEWAY_DAEMON_NAME
ceph orch daemon CEPH_OBJECT_GATEWAY_DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgwhttps.host02.udyllp [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host02.afwvyq [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host05.ucpsrr
[ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgwhttps.host02.udyllp [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host02.afwvyq [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host05.ucpsrrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 소스 클러스터에서 Azure로 데이터를 마이그레이션합니다.
예제
for i in 1 2 3 4 5 do aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default cp /etc/hosts s3://transition/transition$i done
[root@host 01 ~]# for i in 1 2 3 4 5 do aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default cp /etc/hosts s3://transition/transition$i doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 전환을 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rados ls명령을 사용하여 데이터가 Azure로 이동했는지 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터가 전환되지 않으면
lc process명령을 실행할 수 있습니다.예제
radosgw-admin lc process
[root@host 01 ~]# radosgw-admin lc processCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 라이프사이클 프로세스가 모든 버킷 라이프사이클 정책을 시작하고 평가하게 됩니다. 그런 다음 필요한 경우 데이터 전환을 시작합니다.
검증
radosgw-admin lc list명령을 실행하여 전환 완료를 확인합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷의 오브젝트를 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터의 오브젝트를 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 개체는 크기가
0입니다. 개체를 나열할 수 있지만 Azure로 전환되므로 복사할 수 없습니다.S3 API를 사용하여 오브젝트의 헤드를 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클래스가
STANDARD에서CLOUDTIER로 변경되었음을 확인할 수 있습니다.
10장. 테스트 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 기본 기능 테스트를 수행하여 Ceph Object Gateway 환경이 예상대로 작동하는지 확인할 수 있습니다. S3 인터페이스에 대한 초기 Ceph Object Gateway 사용자를 만든 다음 Swift 인터페이스에 대한 하위 사용자를 만들어 REST 인터페이스를 사용할 수 있습니다.
사전 요구 사항
- 정상 실행 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 소프트웨어 설치.
10.1. S3 사용자 생성 링크 복사링크가 클립보드에 복사되었습니다!
게이트웨이를 테스트하려면 S3 사용자를 만들고 사용자에게 액세스 권한을 부여합니다. man radosgw-admin 명령은 추가 명령 옵션에 대한 정보를 제공합니다.
다중 사이트 배포에서 master 영역 그룹의 마스터 영역에 항상 호스트에 사용자를 생성합니다.
사전 요구 사항
-
root또는sudo액세스 - Ceph Object Gateway 설치
프로세스
S3 사용자를 생성합니다.
구문
radosgw-admin user create --uid=name --display-name="USER_NAME"
radosgw-admin user create --uid=name --display-name="USER_NAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow name 을 S3 사용자 이름으로 바꿉니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow access_key및secret_key의 값에 JSON 이스케이프 문자(\)가 포함되어 있지 않은지 출력에서 확인합니다. 이러한 값은 액세스 검증에 필요하지만 값에 JSON 이스케이프 문자가 포함된 경우 특정 클라이언트는 처리할 수 없습니다. 이 문제를 해결하려면 다음 작업 중 하나를 수행하십시오.- JSON 이스케이프 문자를 제거합니다.
- 문자열을 따옴표로 묶습니다.
- 키를 다시 생성하고 JSON 이스케이프 문자가 포함되지 않도록 합니다.
- 키와 시크릿을 수동으로 지정합니다.
슬래시
/가 유효한 문자이므로 제거하지 마십시오.
10.2. Swift 사용자 만들기 링크 복사링크가 클립보드에 복사되었습니다!
Swift 인터페이스를 테스트하려면 Swift 하위 사용자를 만듭니다. Swift 사용자를 만드는 것은 2단계 프로세스입니다. 첫 번째 단계는 사용자를 생성하는 것입니다. 두 번째 단계는 시크릿 키를 생성하는 것입니다.
다중 사이트 배포에서 master 영역 그룹의 마스터 영역에 항상 호스트에 사용자를 생성합니다.
사전 요구 사항
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
프로세스
Swift 사용자를 만듭니다.
구문
radosgw-admin subuser create --uid=NAME --subuser=NAME:swift --access=full
radosgw-admin subuser create --uid=NAME --subuser=NAME:swift --access=fullCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME을 Swift 사용자 이름으로 교체합니다. 예를 들면 다음과 같습니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시크릿 키를 생성합니다.
구문
radosgw-admin key create --subuser=NAME:swift --key-type=swift --gen-secret
radosgw-admin key create --subuser=NAME:swift --key-type=swift --gen-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME을 Swift 사용자 이름으로 교체합니다. 예를 들면 다음과 같습니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.3. S3 액세스 테스트 링크 복사링크가 클립보드에 복사되었습니다!
S3 액세스를 확인하기 위해 Python 테스트 스크립트를 작성하고 실행해야 합니다. S3 액세스 테스트 스크립트는 radosgw 에 연결하고 새 버킷을 생성하고 모든 버킷을 나열합니다. aws_access_key_id 및 aws_secret_access_key 의 값은 radosgw_admin 명령에서 반환된 access_key 및 secret_key 값에서 가져옵니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
프로세스
Red Hat Enterprise Linux 9용 High Availability 리포지토리를 활성화합니다.
subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms
subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow python3-boto3패키지를 설치합니다.dnf install python3-boto3
dnf install python3-boto3Copy to Clipboard Copied! Toggle word wrap Toggle overflow Python 스크립트를 생성합니다.
vi s3test.py
vi s3test.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파일에 다음 내용을 추가합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
endpoint를 게이트웨이 서비스를 구성한 호스트의 URL로 바꿉니다. 즉,게이트웨이 호스트입니다.호스트설정이 DNS로 확인되는지 확인합니다.PORT를 게이트웨이의 포트 번호로 바꿉니다. -
ACCESS및SECRET을 Red Hat Ceph Storage Object Gateway 가이드 의 S3 사용자 만들기 섹션의access_key및secret_key값으로 바꿉니다.
-
스크립트를 실행합니다.
python3 s3test.py
python3 s3test.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 같습니다.
my-new-bucket 2022-05-31T17:09:10.000Z
my-new-bucket 2022-05-31T17:09:10.000ZCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4. Swift 액세스 테스트 링크 복사링크가 클립보드에 복사되었습니다!
Swift 액세스는 swift 명령줄 클라이언트를 통해 확인할 수 있습니다. man swift 명령은 사용 가능한 명령줄 옵션에 대한 자세한 정보를 제공합니다.
swift 클라이언트를 설치하려면 다음 명령을 실행합니다.
sudo yum install python-setuptools sudo easy_install pip sudo pip install --upgrade setuptools sudo pip install --upgrade python-swiftclient
sudo yum install python-setuptools
sudo easy_install pip
sudo pip install --upgrade setuptools
sudo pip install --upgrade python-swiftclient
swift 액세스를 테스트하려면 다음 명령을 실행합니다.
구문
swift -A http://IP_ADDRESS:PORT/auth/1.0 -U testuser:swift -K 'SWIFT_SECRET_KEY' list
# swift -A http://IP_ADDRESS:PORT/auth/1.0 -U testuser:swift -K 'SWIFT_SECRET_KEY' list
IP_ADDRESS 를 게이트웨이 서버의 공용 IP 주소로 바꾸고 SWIFT_SECRET_KEY 를 swift 사용자에게 발행한 radosgw-admin 키 create 명령의 출력에서 해당 값으로 바꿉니다. PORT 를 Beast와 함께 사용하는 포트 번호로 바꿉니다. 포트를 교체하지 않으면 기본적으로 포트 80 으로 설정됩니다.
예를 들면 다음과 같습니다.
swift -A http://10.10.143.116:80/auth/1.0 -U testuser:swift -K '244+fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF/IA' list
swift -A http://10.10.143.116:80/auth/1.0 -U testuser:swift -K '244+fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF/IA' list
출력은 다음과 같아야 합니다.
my-new-bucket
my-new-bucket
부록 A. 구성 참조 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway에 대한 다양한 옵션을 설정할 수 있습니다. 이러한 옵션에는 기본값이 포함되어 있습니다. 각 옵션을 지정하지 않으면 기본값은 자동으로 설정됩니다.
이러한 옵션에 대한 특정 값을 설정하려면 ceph config set client.rgw OPTION VALUE 명령을 사용하여 구성 데이터베이스를 업데이트합니다.
A.1. 일반 설정 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| Ceph Object Gateway의 데이터 파일 위치를 설정합니다. | 문자열 |
|
|
| 지정된 API를 활성화합니다. | 문자열 |
|
|
| Ceph Object Gateway 캐시 사용 여부입니다. | 부울 |
|
|
| Ceph Object Gateway 캐시의 항목 수입니다. | 정수 |
|
|
|
도메인 소켓의 소켓 경로입니다. | 문자열 | 해당 없음 |
|
| Ceph Object Gateway 인스턴스의 호스트입니다. IP 주소 또는 호스트 이름이 될 수 있습니다. | 문자열 |
|
|
| 인스턴스가 요청을 수신 대기하는 포트입니다. 지정하지 않으면 Ceph Object Gateway가 외부 FastCGI를 실행합니다. | 문자열 | 없음 |
|
|
제공된 도메인의 DNS 이름입니다. 영역 그룹 내에서 | 문자열 | 없음 |
|
|
요청에 설정되지 않은 경우 | 문자열 | 없음 |
|
|
요청에 설정되지 않은 경우 | 문자열 | 없음 |
|
|
작동 중인 경우 | 부울 |
|
|
|
원격 주소 매개 변수입니다. 예를 들어 원격 주소를 포함하는 HTTP 필드 또는 역방향 프록시가 작동하는 경우 | 문자열 |
|
|
| 열려 있는 스레드의 제한 시간(초)입니다. | 정수 | 600 |
|
|
Ceph Object Gateway 프로세스가 종료되기 전의 | 정수 |
|
|
| 스레드 풀의 크기입니다. | 정수 | 512 스레드입니다. |
|
|
서로 다른 | 정수 |
|
|
| Ceph Object Gateway가 초기화 시 포기되기 전의 시간(초)입니다. | 정수 |
|
|
| MIME 유형의 경로 및 위치입니다. Swift에서 오브젝트 유형의 자동 감지에 사용됩니다. | 문자열 |
|
|
| 하나의 가비지 컬렉션 처리 주기에서 가비지 컬렉션에 의해 처리될 수 있는 최대 오브젝트 수입니다. | 정수 |
|
|
| 가비지 컬렉션 처리에 의해 개체를 제거 및 처리할 때까지의 최소 대기 시간입니다. | 정수 |
|
|
| 두 연속 가비지 수집 처리 주기의 시작 사이의 최대 시간입니다. | 정수 |
|
|
| 가비지 컬렉션 처리를 위한 사이클 시간입니다. | 정수 |
|
|
|
| 정수 |
|
|
|
| 부울 |
|
|
| Ceph Object Gateway 오브젝트의 오브젝트 스트라이프 크기입니다. | 정수 |
|
|
| 오브젝트에 설정할 수 있는 새 속성 세트를 추가합니다. 이러한 추가 속성은 오브젝트를 배치할 때 HTTP 헤더 필드를 통해 설정할 수 있습니다. 설정된 경우 오브젝트에서 GET/HEAD를 수행할 때 이러한 속성이 HTTP 필드로 반환됩니다. | 문자열 | 없음. 예: "content_foo, content_bar" |
|
| 무조건 종료되기 전에 프로세스를 대기하는 시간(초)입니다. | 정수 |
|
|
| 단일 오브젝트 요청의 창 크기(바이트)입니다. | 정수 |
|
|
| Ceph Storage 클러스터에 전송된 단일 get 작업의 최대 요청 크기입니다. | 정수 |
|
|
| 영역 그룹 버킷에 대해 완화된 S3 버킷 규칙을 활성화합니다. | 부울 |
|
|
| 사용자 버킷을 나열할 때 단일 작업에서 검색할 최대 버킷 수입니다. | 정수 |
|
|
|
버킷 인덱스 오브젝트의 shard 수입니다. 값이
이 변수는 | 정수 |
|
|
|
특정 | 정수 |
|
|
| 긴 복사 작업 중에 오브젝트 진행 상황을 활성화합니다. | 부울 |
|
|
| 복사 진행률 출력 사이의 최소 바이트입니다. | 정수 |
|
|
| 관리자 요청 URL의 진입점입니다. | 문자열 |
|
|
| CONTENT_LENGTH 및 HTTP_CONTENT_LENGTH 세트를 사용하여 FCGI 요청의 호환성 처리를 활성화합니다. | 부울 |
|
|
| 버킷당 기본 최대 오브젝트 수입니다. 이 값은 다른 할당량이 지정되지 않은 경우 새 사용자에게 설정됩니다. 기존 사용자에게는 영향을 미치지 않습니다.
이 변수는 | 정수 |
|
|
| 캐시된 할당량 정보를 신뢰할 수 있는 시간(초)입니다. 이 시간 초과 후 할당량 정보는 클러스터에서 다시 가져옵니다. | 정수 | 600 |
|
| 클러스터와 동기화하기 전에 버킷 할당량 정보가 누적되는 시간(초)입니다. 이 기간 동안 다른 RGW 인스턴스는 이 인스턴스의 작업에서 버킷 할당량 통계가 변경되지 않습니다. | 정수 | 180 |
|
| 클러스터와 동기화하기 전에 사용자 할당량 정보가 누적되는 시간(초)입니다. 이 기간 동안 다른 RGW 인스턴스는 이 인스턴스의 작업에서 사용자 할당량 통계가 변경되지 않습니다. | 정수 | 3600 * 24 |
|
| 게이트웨이가 메타데이터 작업을 로깅하는지 여부를 결정하는 zone 매개변수입니다. | 부울 |
|
|
| 게이트웨이가 데이터 작업을 로깅하는지 여부를 결정하는 zone 매개변수입니다. | 부울 |
|
|
|
영역이 모든 영역 그룹 피어에서 동기화되는지의 여부를 설정하거나 설정 해제하는 | 부울 |
|
A.2. 풀 정보 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 영역은 일련의 Ceph Storage 클러스터 풀에 매핑됩니다.
수동으로 생성된 풀과 비교. 생성된 풀
Ceph Object Gateway의 사용자 키에 쓰기 기능이 포함된 경우 게이트웨이에서 풀을 자동으로 만들 수 있습니다. 이 작업은 시작하기에 편리합니다. 그러나 Ceph Object Storage 클러스터는 Ceph 구성 파일에 설정되지 않은 경우 배치 그룹 기본값을 사용합니다. 또한 Ceph는 기본 CRUSH 계층 구조를 사용합니다. 이러한 설정은 프로덕션 시스템에 적합하지 않습니다.
Ceph Object Gateway의 기본 영역에 대한 기본 풀은 다음과 같습니다.
-
.rgw.root -
.default.rgw.control -
.default.rgw.meta -
.default.rgw.log -
.default.rgw.buckets.index -
.default.rgw.buckets.data -
.default.rgw.buckets.non-ec
Ceph Object Gateway는 영역별로 풀을 생성합니다. 풀을 수동으로 생성하는 경우 영역 이름 앞에 추가합니다. 시스템 풀은 시스템 제어, 로깅 및 사용자 정보와 관련된 오브젝트를 저장합니다. 규칙에 따라 이러한 풀 이름에는 풀 이름 앞에 영역 이름이 있습니다.
-
.<zone-name>.rgw.control: 제어 풀입니다. -
.<zone-name>.log: 로그 풀에는 모든 버킷/컨테이너 및 create, read, update, delete와 같은 오브젝트 작업의 로그가 포함됩니다. -
.<zone-name>.rgw.buckets.index: 이 풀은 버킷의 인덱스를 저장합니다. -
.<zone-name>.rgw.buckets.data:이 풀은 버킷의 데이터를 저장합니다. -
.<zone-name>.rgw.meta: 메타데이터 풀은user_keys및 기타 중요한 메타데이터를 저장합니다. -
.<zone-name>.meta:users.uid: 사용자 ID 풀에는 고유한 사용자 ID 맵이 포함되어 있습니다. -
.<zone-name>.meta:users.keys: 각 사용자 ID의 액세스 키와 시크릿 키가 포함됩니다. -
.<zone-name>.meta:users.email: 이메일 풀에는 사용자 ID와 연결된 이메일 주소가 포함되어 있습니다. -
.<zone-name>.meta:users.swift: Swift 풀에는 사용자 ID에 대한 Swift 하위 사용자 정보가 포함되어 있습니다.
Ceph Object Gateways는 버킷 인덱스(index_pool) 및 버킷 데이터(data_pool)에 대한 데이터를 배치 풀에 저장합니다. 이는 중복될 수 있습니다. 즉, 인덱스 및 데이터에 동일한 풀을 사용할 수 있습니다. 기본 배치의 인덱스 풀은 {zone-name}.rgw.buckets.index 이며 기본 배치의 데이터 풀은 {zone-name}.rgw.buckets 입니다.
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| 모든 영역 그룹별 정보를 저장하는 풀입니다. | 문자열 |
|
|
| 영역별 정보를 저장하는 풀입니다. | 문자열 |
|
A.3. 라이프사이클 설정 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ceph Object Gateway에 대해 다양한 버킷 라이프사이클 옵션을 설정할 수 있습니다. 이러한 옵션에는 기본값이 포함되어 있습니다. 각 옵션을 지정하지 않으면 기본값은 자동으로 설정됩니다.
이러한 옵션에 대한 특정 값을 설정하려면 ceph config set client.rgw OPTION VALUE 명령을 사용하여 구성 데이터베이스를 업데이트합니다.
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| 개발자는 만료 규칙을 며칠에서 초 단위로 스케일링하여 라이프사이클 규칙을 디버그하는 데만 사용합니다. Red Hat은 이 옵션을 프로덕션 클러스터에서 사용하지 않는 것이 좋습니다. | 정수 |
|
|
| Ceph Object Gateway에서 내부적으로 사용하는 타임아웃 값입니다. | 정수 |
|
|
| RADOS 게이트웨이 내부 라이프사이클 작업 대기열의 분할을 제어하며 고의적인 재하드 워크플로우의 일부로만 설정해야 합니다. Red Hat 지원에 먼저 연락하지 않고 클러스터 설정 후에는 이 설정을 변경하지 않는 것이 좋습니다. | 정수 |
|
|
| 버킷당 하나의 라이프사이클 구성 문서에 포함할 라이프사이클 규칙 수입니다. AWS(Amazon Web Service) 제한은 1000개의 규칙입니다. | 정수 |
|
|
| 병렬로 실행할 라이프사이클 작업자 스레드 수, 버킷 및 인덱스 shard를 동시에 처리합니다. Red Hat 지원팀에 연락하지 않고 10보다 큰 가치를 설정하는 것은 권장되지 않습니다. | 정수 |
|
|
| 각 라이프사이클 작업자 스레드가 병렬로 처리할 수 있는 버킷 수입니다. Red Hat 지원팀에 연락하지 않고 10개 이상의 가치를 설정하는 것은 권장되지 않습니다. | 정수 |
|
|
| 여러 지점에서 shard 처리에 삽입할 수 있는 지연 시간(밀리초)입니다. 기본값은 0입니다. 값을 10에서 100ms로 설정하면 RADOS Gateway 인스턴스에서 CPU 사용률이 줄어들고 포화 상태로 관찰되는 경우 ingest에 대한 라이프사이클 스레드의 워크로드 용량이 줄어듭니다. | 정수 |
|
A.4. Swift 설정 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| Swift ACL(액세스 제어 목록) 설정을 적용합니다. | 부울 |
|
|
| Swift 토큰 만료 시간(초)입니다. | 정수 |
|
|
| Ceph Object Gateway Swift API의 URL입니다. | 문자열 | 없음 |
|
|
Swift API의 URL 접두사입니다(예: |
| 해당 없음 |
|
| v1 인증 토큰을 확인하기 위한 기본 URL(내부 Swift 인증을 사용하지 않는 경우). | 문자열 | 없음 |
|
| Swift 인증 URL의 진입점입니다. | 문자열 |
|
A.5. 로깅 설정 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
|
낮은 수준의 D3N 로그는 | 정수 |
|
|
| Ceph Object Gateway에서 존재하지 않는 버킷에 대한 요청을 기록할 수 있습니다. | 부울 |
|
|
| 오브젝트 이름의 로깅 형식입니다. 형식 지정자에 대한 자세한 내용은 도움말 페이지 날짜를 참조하십시오. | 날짜 |
|
|
|
기록된 오브젝트 이름에 UTC 시간이 포함되어 있는지 여부입니다. | 부울 |
|
|
| 사용 로깅의 최대 shard 수입니다. | 정수 |
|
|
| 단일 사용자의 사용 로깅에 사용되는 최대 shard 수입니다. | 정수 |
|
|
| Ceph Object Gateway 작업이 성공할 때마다 로깅을 활성화합니다. | 부울 |
|
|
| 사용 로그를 활성화합니다. | 부울 |
|
|
| 작업 로그를 Ceph Storage 클러스터 백엔드에 쓸지 여부입니다. | 부울 |
|
|
| 작업 로그를 쓰기 위한 Unix 도메인 소켓입니다. | 문자열 | 없음 |
|
| Unix 도메인 소켓에 기록된 작업에 대한 최대 데이터 백로그 데이터 크기입니다. | 정수 |
|
|
| 동기적으로 플러시하기 전에 사용 로그의 더티 병합 항목 수입니다. | 정수 | 1024 |
|
|
| 정수 |
|
|
| 의도하는 로그 오브젝트 이름의 로깅 형식입니다. 형식 지정자에 대한 자세한 내용은 도움말 페이지 날짜를 참조하십시오. | 날짜 |
|
|
|
의도 로그 오브젝트 이름에 UTC 시간이 포함되어 있는지 여부입니다. | 부울 |
|
|
| 데이터 로그 항목(초)입니다. | 정수 |
|
|
| 데이터 변경 로그에 저장할 메모리 내 항목 수입니다. | 정수 |
|
|
| 데이터 변경 로그를 유지할 shard(오브젝트) 수입니다. | 정수 |
|
|
| 데이터 로그의 오브젝트 이름 접두사입니다. | 문자열 |
|
|
| 복제본 로그의 오브젝트 이름 접두사입니다. | 문자열 |
|
|
| 메타데이터 로그의 최대 shard 수입니다. | 정수 |
|
|
| ops 로그 항목과 함께 포함할 쉼표로 구분된 HTTP 헤더 목록입니다. 헤더 이름은 대소문자를 구분하지 않으며 전체 헤더 이름을 밑줄로 구분된 단어와 함께 사용합니다. | 문자열 | 없음 |
rgw_data_log_num_shards 값 변경은 지원되지 않습니다.
A.6. Keystone 설정 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| Keystone 서버의 URL입니다. | 문자열 | 없음 |
|
| Keystone 관리자 토큰(공유 시크릿). | 문자열 | 없음 |
|
| 요청을 처리하는 데 필요한 역할입니다. | 문자열 |
|
|
| 각 Keystone 토큰 캐시의 최대 항목 수입니다. | 정수 |
|
A.7. Keystone 통합 구성 옵션 링크 복사링크가 클립보드에 복사되었습니다!
구성 옵션을 Keystone에 통합할 수 있습니다. 사용 가능한 Keystone 통합 구성 옵션에 대한 자세한 내용은 아래를 참조하십시오.
Ceph 구성 파일을 업데이트한 후 새 Ceph 구성 파일을 스토리지 클러스터의 모든 Ceph 노드에 복사해야 합니다.
rgw_s3_auth_use_keystone
- 설명
-
true로 설정하면 Ceph Object Gateway가 Keystone을 사용하여 사용자를 인증합니다. - 유형
- 부울
- Default
-
false
nss_db_path
- 설명
- NSS 데이터베이스의 경로입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_url
- 설명
- Keystone 서버에서 관리 RESTful API의 URL입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_admin_token
- 설명
- 관리 요청을 위해 Keystone에서 내부적으로 구성된 토큰 또는 공유 시크릿입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_admin_user
- 설명
- keystone admin 사용자 이름입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_admin_password
- 설명
- keystone admin 사용자 암호입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_admin_tenant
- 설명
- keystone v2.0의 Keystone admin 사용자 테넌트입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_admin_project
- 설명
- keystone v3의 keystone admin 사용자 프로젝트입니다.
- 유형
- 문자열
- Default
-
""
rgw_trust_forwarded_https
- 설명
- Ceph Object Gateway 앞에 있는 프록시가 SSL 종료에 사용되는 경우 들어오는 http 연결이 안전한지 여부가 아닙니다. 연결이 안전한 시기를 결정할 때 프록시에서 보낸 전달된 및 X-forwarded 헤더를 신뢰하려면 이 옵션을 활성화합니다. 이는 주로 서버 측 암호화에 필요합니다.
- 유형
- 부울
- Default
-
false
rgw_swift_account_in_url
- 설명
-
Swift 계정이 URL 경로에 인코딩되었는지 여부입니다. Ceph Object Gateway에서 공개적으로 읽을 수 있는 컨테이너 및 임시 URL을 지원하려면 이 옵션을
true로 설정하고 Keystone 서비스 카탈로그를 업데이트해야 합니다. - 유형
- 부울
- Default
-
false
rgw_keystone_admin_domain
- 설명
- Keystone admin 사용자 도메인입니다.
- 유형
- 문자열
- Default
-
""
rgw_keystone_api_version
- 설명
-
사용할 Keystone API의 버전입니다. 유효한 옵션은
2또는3입니다. - 유형
- 정수
- Default
-
2
rgw_keystone_accepted_roles
- 설명
- 요청을 처리하는 데 필요한 역할입니다.
- 유형
- 문자열
- Default
-
멤버, 멤버, 관리자,
rgw_keystone_accepted_admin_roles
- 설명
- 사용자가 관리 권한을 얻을 수 있도록 하는 역할 목록입니다.
- 유형
- 문자열
- Default
-
ResellerAdmin, swiftoperator
rgw_keystone_token_cache_size
- 설명
- Keystone 토큰 캐시의 최대 항목 수입니다.
- 유형
- 정수
- Default
-
10000
rgw_keystone_verify_ssl
- 설명
-
trueCeph가 Keystone의 SSL 인증서를 확인합니다. - 유형
- 부울
- Default
-
true
rgw_keystone_implicit_tenants
- 설명
-
동일한 이름의 테넌트에 새 사용자를 만듭니다. 대부분의 경우 이 값을
true또는false로 설정합니다. 이전 버전의 Red Hat Ceph Storage와의 호환성을 위해 이 값을s3또는swift로 설정할 수도 있습니다. 이는 표시된 프로토콜만 암시적 테넌트를 사용하도록 ID 공간을 분할하는 효과가 있습니다. 일부 이전 버전의 Red Hat Ceph Storage는 Swift의 암시적 테넌트만 지원합니다. - 유형
- 문자열
- Default
-
false
rgw_max_attr_name_len
- 설명
- 메타데이터 이름의 최대 길이입니다. 0 검사를 건너뜁니다.
- 유형
- 크기
- Default
-
0
rgw_max_attrs_num_in_req
- 설명
- 단일 요청과 함께 배치할 수 있는 최대 메타데이터 항목 수입니다.
- 유형
- uint
- Default
-
0
rgw_max_attr_size
- 설명
- 메타데이터 값의 최대 길이입니다. 0 검사를 건너 뛰기
- 유형
- 크기
- Default
-
0
rgw_swift_versioning_enabled
- 설명
- Swift 버전 관리를 활성화합니다.
- 유형
- 부울
- Default
-
0또는1
rgw_keystone_accepted_reader_roles
- 설명
- 읽기에만 사용할 수 있는 역할 목록입니다.
- 유형
- 문자열
- Default
-
""
rgw_swift_enforce_content_length
- 설명
- 컨테이너를 나열할 때 콘텐츠 길이 보내기
- 유형
- 문자열
- Default
-
false`
A.8. LDAP 설정 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | 유형 | 예제 |
|---|---|---|---|
|
| URI 형식의 LDAP 서버 공백으로 구분된 목록입니다. | 문자열 |
|
|
| 기본 도메인이라고도 하는 LDAP 검색 도메인 이름입니다. | 문자열 |
|
|
| 게이트웨이는 이 LDAP 항목과 바인딩됩니다(사용자 일치). | 문자열 |
|
|
|
| 문자열 |
|
|
| Ceph 오브젝트 게이트웨이 사용자 이름이 포함된 LDAP 속성( binddns 양식). | 문자열 |
|